-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Closed
Milestone
Description
Serializing a class with a property of type scala.collection.immutable.ListMap fails with a JsonMappingException. Serializing a ListMap as a root value works as expected. Other scala.collection.immutable.Map implementations also work. The last working version is 2.9.2. Issue is reproduced here.
This may be related to #2111 and #2080. Currently, we are setting serialization typing to static as a workaround.
[info] com.fasterxml.jackson.databind.JsonMappingException: Failed to specialize base type scala.collection.immutable.Map<java.lang.String,java.lang.String> as scala.collection.immutable.ListMap$Node, problem: Type parameter #1/2 differs; can not specialize java.lang.String with
java.lang.Object (through reference chain: SerializationTest$SampleCaseClass["map"])
[info] at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:394)
[info] at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:353)
[info] at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:316)
[info] at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:727)
[info] at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
[info] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
[info] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)
[info] at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3905)
[info] at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:3201)
[info] at SerializationTest.serialize(SerializationTest.scala:67)
[info] ...
[info] Cause: java.lang.IllegalArgumentException: Failed to specialize base type scala.collection.immutable.Map<java.lang.String,java.lang.String> as scala.collection.immutable.ListMap$Node, problem: Type parameter #1/2 differs; can not specialize java.lang.String with java.lang.
Object
[info] at com.fasterxml.jackson.databind.type.TypeFactory._bindingsForSubtype(TypeFactory.java:432)
[info] at com.fasterxml.jackson.databind.type.TypeFactory.constructSpecializedType(TypeFactory.java:401)
[info] at com.fasterxml.jackson.databind.cfg.MapperConfig.constructSpecializedType(MapperConfig.java:297)
[info] at com.fasterxml.jackson.databind.DatabindContext.constructSpecializedType(DatabindContext.java:161)
[info] at com.fasterxml.jackson.databind.ser.BeanPropertyWriter._findAndAddDynamic(BeanPropertyWriter.java:893)
[info] at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:705)
[info] at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:719)
[info] at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
[info] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
[info] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)
Metadata
Metadata
Assignees
Labels
No labels