-
Notifications
You must be signed in to change notification settings - Fork 82
Closed
Milestone
Description
JsonMapper and its parent class ObjectMapper are both supposed to be Serializable, but when AfterburnerModule is added, serialization is no longer possible.
For example, this code:
public class SerTest {
public static void main(final String... args) throws Exception {
final JsonMapper x = JsonMapper.builder()
.addModule(new AfterburnerModule())
.build();
final ByteArrayOutputStream out = new ByteArrayOutputStream();
new ObjectOutputStream(out)
.writeObject(x);
final ObjectInputStream input = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray()));
final JsonMapper y = (JsonMapper) input.readObject();
}
}
Results in exception:
Exception in thread "main" java.io.NotSerializableException: com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at SerTest.main(SerTest.java:13)
Without adding the AfterburnerModule to JsonMapper, this works as expected.
Jackson version = 2.11.0
Metadata
Metadata
Assignees
Labels
No labels