diff options
Diffstat (limited to 'document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java')
-rw-r--r-- | document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java b/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java index e252e71407a..7e32a6b8b44 100644 --- a/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java +++ b/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java @@ -100,13 +100,17 @@ public class VespaJsonDocumentReader { expectObjectStart(buffer.currentToken()); String fieldName = buffer.currentName(); - if (isFieldPath(fieldName)) { - addFieldPathUpdates(update, buffer, fieldName); - } else { - addFieldUpdates(update, buffer, fieldName); + try { + if (isFieldPath(fieldName)) { + addFieldPathUpdates(update, buffer, fieldName); + } else { + addFieldUpdates(update, buffer, fieldName); + } + expectObjectEnd(buffer.currentToken()); + } + catch (IllegalArgumentException | IndexOutOfBoundsException e) { + throw new IllegalArgumentException("Error in '" + fieldName + "'", e); } - - expectObjectEnd(buffer.currentToken()); buffer.next(); } } @@ -177,16 +181,14 @@ public class VespaJsonDocumentReader { private AssignFieldPathUpdate readAssignFieldPathUpdate(DocumentType documentType, String fieldPath, TokenBuffer buffer) { AssignFieldPathUpdate fieldPathUpdate = new AssignFieldPathUpdate(documentType, fieldPath); - FieldValue fv = SingleValueReader.readSingleValue( - buffer, fieldPathUpdate.getFieldPath().getResultingDataType()); + FieldValue fv = SingleValueReader.readSingleValue(buffer, fieldPathUpdate.getFieldPath().getResultingDataType()); fieldPathUpdate.setNewValue(fv); return fieldPathUpdate; } private AddFieldPathUpdate readAddFieldPathUpdate(DocumentType documentType, String fieldPath, TokenBuffer buffer) { AddFieldPathUpdate fieldPathUpdate = new AddFieldPathUpdate(documentType, fieldPath); - FieldValue fv = SingleValueReader.readSingleValue( - buffer, fieldPathUpdate.getFieldPath().getResultingDataType()); + FieldValue fv = SingleValueReader.readSingleValue(buffer, fieldPathUpdate.getFieldPath().getResultingDataType()); fieldPathUpdate.setNewValues((Array) fv); return fieldPathUpdate; } |