diff options
author | freva <valerijf@yahoo-inc.com> | 2017-02-10 12:32:39 +0100 |
---|---|---|
committer | freva <valerijf@yahoo-inc.com> | 2017-02-10 12:32:39 +0100 |
commit | f0072df1b10f4636c14e996d3638466f9af32ef0 (patch) | |
tree | a15bf2edbf971e3776c1d8fd71676a8463a6d897 | |
parent | 61bfebfd4fff9c8c0fbdaa11cee30604b0ff5241 (diff) |
Added verifyEndState for fieldpaths read
-rw-r--r-- | document/src/main/java/com/yahoo/document/json/JsonReader.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/JsonReader.java b/document/src/main/java/com/yahoo/document/json/JsonReader.java index e8cade15254..98d9519b89f 100644 --- a/document/src/main/java/com/yahoo/document/json/JsonReader.java +++ b/document/src/main/java/com/yahoo/document/json/JsonReader.java @@ -29,7 +29,6 @@ import static com.yahoo.document.json.readers.AddRemoveCreator.createAdds; import static com.yahoo.document.json.readers.AddRemoveCreator.createRemoves; import static com.yahoo.document.json.readers.CompositeReader.populateComposite; import static com.yahoo.document.json.readers.JsonParserHelpers.expectArrayStart; -import static com.yahoo.document.json.readers.JsonParserHelpers.expectObjectEnd; import static com.yahoo.document.json.readers.JsonParserHelpers.expectObjectStart; import static com.yahoo.document.json.readers.MapReader.UPDATE_MATCH; import static com.yahoo.document.json.readers.MapReader.createMapUpdate; @@ -131,7 +130,7 @@ public class JsonReader { case PUT: documentOperation = new DocumentPut(new Document(documentType, documentParseInfo.documentId)); readPut(documentParseInfo.fieldsBuffer, (DocumentPut) documentOperation); - verifyEndState(documentParseInfo.fieldsBuffer); + verifyEndState(documentParseInfo.fieldsBuffer, JsonToken.END_OBJECT); break; case REMOVE: documentOperation = new DocumentRemove(documentParseInfo.documentId); @@ -140,11 +139,12 @@ public class JsonReader { documentOperation = new DocumentUpdate(documentType, documentParseInfo.documentId); if (documentParseInfo.fieldsBuffer.size() > 0) { readUpdate(documentParseInfo.fieldsBuffer, (DocumentUpdate) documentOperation); - verifyEndState(documentParseInfo.fieldsBuffer); + verifyEndState(documentParseInfo.fieldsBuffer, JsonToken.END_OBJECT); } if (documentParseInfo.fieldpathsBuffer.size() > 0) { VespaJsonDocumentReader vespaJsonDocumentReader = new VespaJsonDocumentReader(documentType, documentParseInfo); vespaJsonDocumentReader.read((DocumentUpdate) documentOperation); + verifyEndState(documentParseInfo.fieldpathsBuffer, JsonToken.END_ARRAY); } break; default: @@ -183,9 +183,10 @@ public class JsonReader { } } - private void verifyEndState(TokenBuffer buffer) { + private void verifyEndState(TokenBuffer buffer, JsonToken expectedFinalToken) { + Preconditions.checkState(buffer.currentToken() == expectedFinalToken, + "Expected end of JSON struct (%s), got %s", expectedFinalToken, buffer.currentToken()); Preconditions.checkState(buffer.nesting() == 0, "Nesting not zero at end of operation"); - expectObjectEnd(buffer.currentToken()); Preconditions.checkState(buffer.next() == null, "Dangling data at end of operation"); Preconditions.checkState(buffer.size() == 0, "Dangling data at end of operation"); } |