diff options
author | Tor Egge <Tor.Egge@oath.com> | 2018-02-08 11:32:34 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@oath.com> | 2018-02-08 14:02:14 +0000 |
commit | 14c2d45e53c6efa8c07cbe5164ad908bb5f229bc (patch) | |
tree | 7aaa490cc3e9c00b4db92015c1c49fd3c337c5d4 /storageapi/src | |
parent | 6aadb56c082d1cb98f69152afb7c313ef214ce46 (diff) |
Throw exception instead of failing assert when trying to serialize
non-default bucket space using old storage protocol.
Diffstat (limited to 'storageapi/src')
-rw-r--r-- | storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp index ece1445b18c..355a7871cc6 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp @@ -7,6 +7,7 @@ #include <vespa/storageapi/message/bucketsplitting.h> #include <vespa/storageapi/message/multioperation.h> #include <vespa/document/bucket/fixed_bucket_spaces.h> +#include <sstream> using document::BucketSpace; using document::FixedBucketSpaces; @@ -25,7 +26,11 @@ void ProtocolSerialization5_0::putBucket(const document::Bucket& bucket, vespalib::GrowableByteBuffer& buf) const { buf.putLong(bucket.getBucketId().getRawId()); - assert(bucket.getBucketSpace() == FixedBucketSpaces::default_space()); + if (bucket.getBucketSpace() != FixedBucketSpaces::default_space()) { + std::ostringstream ost; + ost << "Bucket with bucket space " << bucket.getBucketSpace() << " cannot be serialized on old storageapi protocol."; + throw vespalib::IllegalArgumentException(ost.str(), VESPA_STRLOC); + } } document::BucketSpace @@ -37,7 +42,11 @@ ProtocolSerialization5_0::getBucketSpace(document::ByteBuffer&) const void ProtocolSerialization5_0::putBucketSpace(document::BucketSpace bucketSpace, vespalib::GrowableByteBuffer&) const { - assert(bucketSpace == FixedBucketSpaces::default_space()); + if (bucketSpace != FixedBucketSpaces::default_space()) { + std::ostringstream ost; + ost << "Bucket space " << bucketSpace << " cannot be serialized on old storageapi protocol."; + throw vespalib::IllegalArgumentException(ost.str(), VESPA_STRLOC); + } } api::BucketInfo |