-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Closed
Milestone
Description
In 2.7.x, 2.8.x versions following test fails with an exception:
public class Test {
private static final String JSON = "[{\"message\":\"messageHere\"}]";
static class A {
List<B> bs = Collections.emptyList();
@JsonCreator
A(final List<B> bs) {
this.bs = bs;
}
}
static class B {
List<C> cs = Collections.emptyList();
@JsonCreator
B(final List<C> cs) {
this.cs = cs;
}
}
public static class C {
String message;
@JsonCreator
C(@JsonProperty("message") String message) {
this.message = message;
}
}
@Test
public void test() throws IOException {
ObjectMapper om = new ObjectMapper();
om.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
om.readValue(JSON, A.class);
}
}
com.fasterxml.jackson.databind.exc.InputMismatchException: Can not construct instance of com.fasterxml.jackson.databind.creators.JsonCreatorWithCollectionTest$B, problem: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
at [Source: [{"message":"site is missing from bid request (breq) object"}]; line: 1, column: 3] (through reference chain: java.util.ArrayList[0])
at com.fasterxml.jackson.databind.exc.InputMismatchException.from(InputMismatchException.java:58)
at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1354)
at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1019)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1207)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:314)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:148)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:289)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:261)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromArray(BeanDeserializerBase.java:1336)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:174)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:150)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3806)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2849)
at com.fasterxml.jackson.databind.creators.JsonCreatorWithCollectionTest.test(JsonCreatorWithCollectionTest.java:51)
While on 2.5 and 2.6 it works fine.
Metadata
Metadata
Assignees
Labels
No labels