Skip to content

Commit 8497e4d

Browse files
committed
Fixed BeanDeserializerBase not falling back to non-array delegate creator when the array one fails
1 parent 988e4f0 commit 8497e4d

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBase.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,6 +1258,18 @@ public Object deserializeFromArray(JsonParser p, DeserializationContext ctxt) th
12581258
wrapInstantiationProblem(e, ctxt);
12591259
}
12601260
}
1261+
// fallback to non-array delegate
1262+
if (_delegateDeserializer != null) {
1263+
try {
1264+
Object bean = _valueInstantiator.createUsingArrayDelegate(ctxt, _delegateDeserializer.deserialize(p, ctxt));
1265+
if (_injectables != null) {
1266+
injectValues(ctxt, bean);
1267+
}
1268+
return bean;
1269+
} catch (Exception e) {
1270+
wrapInstantiationProblem(e, ctxt);
1271+
}
1272+
}
12611273
if (ctxt.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)) {
12621274
JsonToken t = p.nextToken();
12631275
if (t == JsonToken.END_ARRAY && ctxt.isEnabled(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT)) {

0 commit comments

Comments
 (0)