diff options
author | jonmv <venstad@gmail.com> | 2024-01-23 16:55:18 +0100 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2024-01-23 16:55:18 +0100 |
commit | c5a7723fb522a5aa2cff1a8662e1ddffc80c9de6 (patch) | |
tree | 2be0799729d0131f4cb2d90fb67c09160be3d0cc /document | |
parent | 0116af34b503a8b7f7a4d8e5585238883a746c32 (diff) |
Improve error detection
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()); } |