diff options
Diffstat (limited to 'document')
-rw-r--r-- | document/src/main/java/com/yahoo/document/json/readers/TensorReader.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/readers/TensorReader.java b/document/src/main/java/com/yahoo/document/json/readers/TensorReader.java index 27179ef32de..fc78017f133 100644 --- a/document/src/main/java/com/yahoo/document/json/readers/TensorReader.java +++ b/document/src/main/java/com/yahoo/document/json/readers/TensorReader.java @@ -39,7 +39,7 @@ public class TensorReader { Tensor.Builder builder = Tensor.Builder.of(tensorFieldValue.getDataType().getTensorType()); expectOneOf(buffer.current(), JsonToken.START_OBJECT, JsonToken.START_ARRAY); int initNesting = buffer.nesting(); - while (true) { + while ( ! buffer.isEmpty()) { Supplier<Token> lookahead = buffer.lookahead(); Token next = lookahead.get(); if (TENSOR_CELLS.equals(next.name) && ! primitiveContent(next.token, lookahead.get().token)) { @@ -67,6 +67,9 @@ public class TensorReader { break; } } + if (buffer.nesting() + 1 != initNesting) + throw new IllegalArgumentException("incomplete JSON structure for " + tensorFieldValue); + expectOneOf(buffer.current(), JsonToken.END_OBJECT, JsonToken.END_ARRAY); tensorFieldValue.assign(builder.build()); } |