summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2024-01-23 16:55:18 +0100
committerjonmv <venstad@gmail.com>2024-01-23 16:55:18 +0100
commitc5a7723fb522a5aa2cff1a8662e1ddffc80c9de6 (patch)
tree2be0799729d0131f4cb2d90fb67c09160be3d0cc /document
parent0116af34b503a8b7f7a4d8e5585238883a746c32 (diff)
Improve error detection
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/json/readers/TensorReader.java5
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());
}