diff options
author | Benoit Foucher <benoit@zeroc.com> | 2019-07-11 17:42:59 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2019-07-11 17:42:59 +0200 |
commit | bcd2c2d1b01e721be924b96247be86384ddc9738 (patch) | |
tree | 7b84ec6832dc13c548fe7d3c7098675c61bb06ec /cpp/src/Ice/DispatchInterceptor.cpp | |
parent | Fix .gitignore syntax (diff) | |
download | ice-bcd2c2d1b01e721be924b96247be86384ddc9738.tar.bz2 ice-bcd2c2d1b01e721be924b96247be86384ddc9738.tar.xz ice-bcd2c2d1b01e721be924b96247be86384ddc9738.zip |
Fixed dispatcher interceptor bug #435
Diffstat (limited to 'cpp/src/Ice/DispatchInterceptor.cpp')
-rw-r--r-- | cpp/src/Ice/DispatchInterceptor.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/cpp/src/Ice/DispatchInterceptor.cpp b/cpp/src/Ice/DispatchInterceptor.cpp index 10457e990e9..ae12e77f900 100644 --- a/cpp/src/Ice/DispatchInterceptor.cpp +++ b/cpp/src/Ice/DispatchInterceptor.cpp @@ -21,4 +21,17 @@ Ice::DispatchInterceptor::_iceDispatch(IceInternal::Incoming& in, const Current& { return false; } + catch(const std::exception&) + { + // + // If the input parameters weren't read, make sure we skip them here. It's needed to read the + // encoding version used by the client to eventually marshal the user exception. It's also needed + // if we are dispatch a batch oneway request to read the next batch request. + // + if(in.getCurrent().encoding.major == 0 && in.getCurrent().encoding.minor == 0) + { + in.skipReadParams(); + } + throw; + } } |