diff options
author | Mark Spruiell <mes@zeroc.com> | 2012-12-26 16:57:49 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2012-12-26 16:57:49 -0800 |
commit | 9d0f4c271fd3f307e3b9e72ac9117cb94aa615e8 (patch) | |
tree | 7b240cdc43de51cc33b6267fef9f443f48e727b6 /cpp/src/Ice/BasicStream.cpp | |
parent | Fixed mingw warnings and added -Werror to mingw build (diff) | |
download | ice-9d0f4c271fd3f307e3b9e72ac9117cb94aa615e8.tar.bz2 ice-9d0f4c271fd3f307e3b9e72ac9117cb94aa615e8.tar.xz ice-9d0f4c271fd3f307e3b9e72ac9117cb94aa615e8.zip |
more compact ID fixes
Diffstat (limited to 'cpp/src/Ice/BasicStream.cpp')
-rw-r--r-- | cpp/src/Ice/BasicStream.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/cpp/src/Ice/BasicStream.cpp b/cpp/src/Ice/BasicStream.cpp index 4d007aa665f..02b8f3046e0 100644 --- a/cpp/src/Ice/BasicStream.cpp +++ b/cpp/src/Ice/BasicStream.cpp @@ -2801,7 +2801,32 @@ IceInternal::BasicStream::EncapsDecoder::readInstance() _typeId.clear(); if(compactIdResolver) { - _typeId = compactIdResolver->resolve(_compactId); + try + { + _typeId = compactIdResolver->resolve(_compactId); + } + catch(const LocalException&) + { + throw; + } + catch(const std::exception& ex) + { + ostringstream ostr; + ostr << "exception in CompactIdResolver for ID " << _compactId; + string msg = ostr.str(); + string what = ex.what(); + if(!what.empty()) + { + msg += ":\n" + what; + } + throw MarshalException(__FILE__, __LINE__, msg); + } + catch(...) + { + ostringstream ostr; + ostr << "unknown exception in CompactIdResolver for ID " << _compactId; + throw MarshalException(__FILE__, __LINE__, ostr.str()); + } } if(_typeId.empty()) { |