diff options
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); } |