diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-07-24 14:32:00 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-07-24 14:32:00 +0200 |
commit | 2d88aac37141b6649155bf7cefd926af944be132 (patch) | |
tree | a67642698dda213f0b212d6475992e02c3dcc4d7 /cpp/src/Ice/CollocatedRequestHandler.cpp | |
parent | another update to CHANGES for ICE-5515 (diff) | |
download | ice-2d88aac37141b6649155bf7cefd926af944be132.tar.bz2 ice-2d88aac37141b6649155bf7cefd926af944be132.tar.xz ice-2d88aac37141b6649155bf7cefd926af944be132.zip |
Fixed bug with system exceptions not being propagated correctly with collocation optimization + AMD
Diffstat (limited to 'cpp/src/Ice/CollocatedRequestHandler.cpp')
-rw-r--r-- | cpp/src/Ice/CollocatedRequestHandler.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/cpp/src/Ice/CollocatedRequestHandler.cpp b/cpp/src/Ice/CollocatedRequestHandler.cpp index eb80eb5eeb7..fde2cbcb0b1 100644 --- a/cpp/src/Ice/CollocatedRequestHandler.cpp +++ b/cpp/src/Ice/CollocatedRequestHandler.cpp @@ -540,6 +540,14 @@ CollocatedRequestHandler::sendNoResponse() _adapter->decDirectCount(); } +bool +CollocatedRequestHandler::systemException(Int requestId, const SystemException& ex) +{ + handleException(requestId, ex); + _adapter->decDirectCount(); + return true; +} + void CollocatedRequestHandler::invokeException(Int requestId, const LocalException& ex, int invokeNum) { @@ -633,15 +641,7 @@ CollocatedRequestHandler::invokeAll(BasicStream* os, Int requestId, Int invokeNu } Incoming in(_reference->getInstance().get(), this, 0, _adapter, _response, 0, requestId); - try - { - in.invoke(servantManager, os); - } - catch(const SystemException& ex) - { - handleException(requestId, ex); - _adapter->decDirectCount(); - } + in.invoke(servantManager, os); --invokeNum; } } |