summaryrefslogtreecommitdiffstats
path: root/storageapi
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@oath.com>2018-02-08 11:32:34 +0000
committerTor Egge <Tor.Egge@oath.com>2018-02-08 14:02:14 +0000
commit14c2d45e53c6efa8c07cbe5164ad908bb5f229bc (patch)
tree7aaa490cc3e9c00b4db92015c1c49fd3c337c5d4 /storageapi
parent6aadb56c082d1cb98f69152afb7c313ef214ce46 (diff)
Throw exception instead of failing assert when trying to serialize
non-default bucket space using old storage protocol.
Diffstat (limited to 'storageapi')
-rw-r--r--storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp13
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