summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/CollocatedRequestHandler.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-07-24 14:32:00 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-07-24 14:32:00 +0200
commit2d88aac37141b6649155bf7cefd926af944be132 (patch)
treea67642698dda213f0b212d6475992e02c3dcc4d7 /cpp/src/Ice/CollocatedRequestHandler.cpp
parentanother update to CHANGES for ICE-5515 (diff)
downloadice-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.cpp18
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;
}
}