Skip to content

Commit c9909b2

Browse files
authored
Merge pull request #1295 from libetl/bugfix/externalTypeId1288
#1288 applying JACKSON-831 on the BuilderBasedDeserializer
2 parents db776be + 9f5cfb9 commit c9909b2

File tree

2 files changed

+555
-2
lines changed

2 files changed

+555
-2
lines changed

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

+7-2
Original file line numberDiff line numberDiff line change
@@ -662,11 +662,16 @@ protected Object deserializeWithExternalTypeId(JsonParser p,
662662
{
663663
final Class<?> activeView = _needViewProcesing ? ctxt.getActiveView() : null;
664664
final ExternalTypeHandler ext = _externalTypeIdHandler.start();
665-
for (; p.getCurrentToken() != JsonToken.END_OBJECT; p.nextToken()) {
665+
666+
for (JsonToken t = p.getCurrentToken(); t == JsonToken.FIELD_NAME; t = p.nextToken()) {
666667
String propName = p.getCurrentName();
667-
p.nextToken();
668+
t = p.nextToken();
668669
SettableBeanProperty prop = _beanProperties.find(propName);
669670
if (prop != null) { // normal case
671+
// [JACKSON-831]: may have property AND be used as external type id:
672+
if (t.isScalarValue()) {
673+
ext.handleTypePropertyValue(p, ctxt, propName, bean);
674+
}
670675
if (activeView != null && !prop.visibleInView(activeView)) {
671676
p.skipChildren();
672677
continue;

0 commit comments

Comments
 (0)