Skip to content

Commit 3a3b3d5

Browse files
committed
Merge parts of #5140 first for easier code review of functional changes
1 parent 119e7cd commit 3a3b3d5

File tree

1 file changed

+11
-17
lines changed

1 file changed

+11
-17
lines changed

src/main/java/com/fasterxml/jackson/databind/deser/std/CollectionDeserializer.java

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,10 @@ protected Collection<Object> _deserializeFromArray(JsonParser p, Deserialization
341341
// [databind#631]: Assign current value, to be accessible by custom serializers
342342
p.assignCurrentValue(result);
343343

344-
JsonDeserializer<Object> valueDes = _valueDeserializer;
345344
// Let's offline handling of values with Object Ids (simplifies code here)
346-
if (valueDes.getObjectIdReader() != null) {
345+
if (_valueDeserializer.getObjectIdReader() != null) {
347346
return _deserializeWithObjectId(p, ctxt, result);
348347
}
349-
final TypeDeserializer typeDeser = _valueTypeDeserializer;
350348
JsonToken t;
351349
while ((t = p.nextToken()) != JsonToken.END_ARRAY) {
352350
try {
@@ -356,10 +354,10 @@ protected Collection<Object> _deserializeFromArray(JsonParser p, Deserialization
356354
continue;
357355
}
358356
value = _nullProvider.getNullValue(ctxt);
359-
} else if (typeDeser == null) {
360-
value = valueDes.deserialize(p, ctxt);
357+
} else if (_valueTypeDeserializer == null) {
358+
value = _valueDeserializer.deserialize(p, ctxt);
361359
} else {
362-
value = valueDes.deserializeWithType(p, ctxt, typeDeser);
360+
value = _valueDeserializer.deserializeWithType(p, ctxt, _valueTypeDeserializer);
363361
}
364362
if (value == null) {
365363
_tryToAddNull(p, ctxt, result);
@@ -400,9 +398,6 @@ protected final Collection<Object> handleNonArray(JsonParser p, DeserializationC
400398
if (!canWrap) {
401399
return (Collection<Object>) ctxt.handleUnexpectedToken(_containerType, p);
402400
}
403-
JsonDeserializer<Object> valueDes = _valueDeserializer;
404-
final TypeDeserializer typeDeser = _valueTypeDeserializer;
405-
406401
Object value;
407402

408403
try {
@@ -412,11 +407,12 @@ protected final Collection<Object> handleNonArray(JsonParser p, DeserializationC
412407
return result;
413408
}
414409
value = _nullProvider.getNullValue(ctxt);
415-
} else if (typeDeser == null) {
416-
value = valueDes.deserialize(p, ctxt);
410+
} else if (_valueTypeDeserializer == null) {
411+
value = _valueDeserializer.deserialize(p, ctxt);
417412
} else {
418-
value = valueDes.deserializeWithType(p, ctxt, typeDeser);
413+
value = _valueDeserializer.deserializeWithType(p, ctxt, _valueTypeDeserializer);
419414
}
415+
// _skipNullValues is checked by _tryToAddNull.
420416
if (value == null) {
421417
_tryToAddNull(p, ctxt, result);
422418
return result;
@@ -444,8 +440,6 @@ protected Collection<Object> _deserializeWithObjectId(JsonParser p, Deserializat
444440
// [databind#631]: Assign current value, to be accessible by custom serializers
445441
p.assignCurrentValue(result);
446442

447-
final JsonDeserializer<Object> valueDes = _valueDeserializer;
448-
final TypeDeserializer typeDeser = _valueTypeDeserializer;
449443
CollectionReferringAccumulator referringAccumulator =
450444
new CollectionReferringAccumulator(_containerType.getContentType().getRawClass(), result);
451445

@@ -458,10 +452,10 @@ protected Collection<Object> _deserializeWithObjectId(JsonParser p, Deserializat
458452
continue;
459453
}
460454
value = _nullProvider.getNullValue(ctxt);
461-
} else if (typeDeser == null) {
462-
value = valueDes.deserialize(p, ctxt);
455+
} else if (_valueTypeDeserializer == null) {
456+
value = _valueDeserializer.deserialize(p, ctxt);
463457
} else {
464-
value = valueDes.deserializeWithType(p, ctxt, typeDeser);
458+
value = _valueDeserializer.deserializeWithType(p, ctxt, _valueTypeDeserializer);
465459
}
466460
if (value == null && _skipNullValues) {
467461
continue;

0 commit comments

Comments
 (0)