diff options
author | Håvard Pettersen <havardpe@oath.com> | 2021-03-24 14:56:45 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2021-03-24 15:01:34 +0000 |
commit | 83605debe0a6b3a53b339f24992c9a54511d2a28 (patch) | |
tree | dcd73fa28405aba498d48cd01d15e5da1a903570 /document | |
parent | 08f5c940cd3160b07ea48ec1e814c7641597e078 (diff) |
handle value decoding failures more gracefully
Diffstat (limited to 'document')
-rw-r--r-- | document/src/vespa/document/serialization/vespadocumentdeserializer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/document/src/vespa/document/serialization/vespadocumentdeserializer.cpp b/document/src/vespa/document/serialization/vespadocumentdeserializer.cpp index 6567b8cb6b5..d88f7437112 100644 --- a/document/src/vespa/document/serialization/vespadocumentdeserializer.cpp +++ b/document/src/vespa/document/serialization/vespadocumentdeserializer.cpp @@ -373,7 +373,11 @@ VespaDocumentDeserializer::readTensor() std::unique_ptr<vespalib::eval::Value> tensor; if (length != 0) { nbostream wrapStream(_stream.peek(), length); - tensor = vespalib::eval::decode_value(wrapStream, FastValueBuilderFactory::get()); + try { + tensor = vespalib::eval::decode_value(wrapStream, FastValueBuilderFactory::get()); + } catch (const vespalib::eval::DecodeValueException &e) { + throw DeserializeException("tensor value decode failed", e, VESPA_STRLOC); + } if (wrapStream.size() != 0) { throw DeserializeException("Leftover bytes deserializing tensor field value.", VESPA_STRLOC); } |