summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/Connection.cpp10
-rw-r--r--cpp/src/Ice/Exception.cpp7
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);