-
Notifications
You must be signed in to change notification settings - Fork 82
Closed
Labels
blackbirdIssue related to Blackbird moduleIssue related to Blackbird module
Description
The following code snippet fails. However, the same snippet works if either Blackbird is removed, or the constructor argument is changed to use double[]
notation instead of double...
public class Scratch {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new BlackbirdModule());
Foo foo = new Foo(new double[] { 1d, 2d, 3d });
String serialized = mapper.writeValueAsString(foo);
Foo foo2 = mapper.readValue(serialized, Foo.class);
}
static class Foo {
@JsonProperty("bar")
double[] bar;
@JsonCreator
public Foo(@JsonProperty("bar") double... bar) {
this.bar = bar;
}
}
}
Exception in thread "main" com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot construct instance of `com.alloymetrics.restapi.Scratch$Foo`, problem: class [D cannot be cast to class java.lang.Number ([D and java.lang.Number are in module java.base of loader 'bootstrap')
at [Source: (String)"{"bar":[1.0,2.0,3.0]}"; line: 1, column: 21]
at com.fasterxml.jackson.databind.exc.ValueInstantiationException.from(ValueInstantiationException.java:47)
at com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:1907)
at com.fasterxml.jackson.databind.DeserializationContext.handleInstantiationProblem(DeserializationContext.java:1260)
at com.fasterxml.jackson.module.blackbird.deser.OptimizedValueInstantiator.createFromObjectWith(OptimizedValueInstantiator.java:51)
at com.fasterxml.jackson.databind.deser.ValueInstantiator.createFromObjectWith(ValueInstantiator.java:288)
at com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.build(PropertyBasedCreator.java:202)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:454)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1405)
at com.fasterxml.jackson.module.blackbird.deser.SuperSonicBeanDeserializer.deserializeFromObject(SuperSonicBeanDeserializer.java:247)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:195)
at com.fasterxml.jackson.module.blackbird.deser.SuperSonicBeanDeserializer.deserialize(SuperSonicBeanDeserializer.java:116)
at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4593)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3548)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3516)
Metadata
Metadata
Assignees
Labels
blackbirdIssue related to Blackbird moduleIssue related to Blackbird module