diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/Connection.cpp | 10 | ||||
-rw-r--r-- | cpp/src/Ice/Exception.cpp | 7 |
2 files changed, 15 insertions, 2 deletions
diff --git a/cpp/src/Ice/Connection.cpp b/cpp/src/Ice/Connection.cpp index 098b9a20aab..6b99accd7ed 100644 --- a/cpp/src/Ice/Connection.cpp +++ b/cpp/src/Ice/Connection.cpp @@ -1034,7 +1034,10 @@ IceInternal::Connection::compress(BasicStream& uncompressed, BasicStream& compre int bzError = BZ2_bzBuffToBuffCompress(compressed.b.begin() + headerSize + sizeof(Int), &compressedLen, uncompressed.b.begin() + headerSize, uncompressedLen, 1, 0, 0); - assert(bzError == BZ_OK); // TODO: Local exception + if (bzError != BZ_OK) + { + throw CompressionException(__FILE__, __LINE__); + } compressed.b.resize(headerSize + sizeof(Int) + compressedLen); // @@ -1079,7 +1082,10 @@ IceInternal::Connection::uncompress(BasicStream& compressed, BasicStream& uncomp compressed.b.begin() + headerSize + sizeof(Int), compressedLen, 0, 0); - assert(bzError == BZ_OK); + if (bzError != BZ_OK) + { + throw CompressionException(__FILE__, __LINE__); + } copy(compressed.b.begin(), compressed.b.begin() + headerSize, uncompressed.b.begin()); } diff --git a/cpp/src/Ice/Exception.cpp b/cpp/src/Ice/Exception.cpp index a7bebba4031..37582d7c2b4 100644 --- a/cpp/src/Ice/Exception.cpp +++ b/cpp/src/Ice/Exception.cpp @@ -310,6 +310,13 @@ Ice::CompressionNotSupportedException::ice_print(ostream& out) const } void +Ice::CompressionException::ice_print(ostream& out) const +{ + Exception::ice_print(out); + out << ":\nprotocol error: failed to compress or uncompress data"; +} + +void Ice::PluginInitializationException::ice_print(ostream& out) const { Exception::ice_print(out); |