diff options
Diffstat (limited to 'cpp/src/Ice/BasicStream.cpp')
-rw-r--r-- | cpp/src/Ice/BasicStream.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cpp/src/Ice/BasicStream.cpp b/cpp/src/Ice/BasicStream.cpp index cd32101f980..b4f2753802f 100644 --- a/cpp/src/Ice/BasicStream.cpp +++ b/cpp/src/Ice/BasicStream.cpp @@ -2887,9 +2887,17 @@ IceInternal::BasicStream::EncapsDecoder::skipSlice() } else { - throw MarshalException(__FILE__, - __LINE__, - "compact format prevents slicing (the sender should use the sliced format instead)"); + if(_sliceType == ObjectSlice) + { + throw NoObjectFactoryException( + __FILE__, __LINE__, + "compact format prevents slicing (the sender should use the sliced format instead)", + _typeId); + } + else + { + throw UnknownUserException(__FILE__, __LINE__, _typeId.substr(2)); + } } if(_encaps->encoding != Encoding_1_0) |