summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Reference.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Reference.cpp')
-rw-r--r--cpp/src/Ice/Reference.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index 4e28f98dac7..92ca821b3e9 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -1777,22 +1777,15 @@ IceInternal::RoutableReference::createConnection(const vector<EndpointIPtr>& all
virtual void
setException(const Ice::LocalException& ex)
{
- if(!ICE_EXCEPTION_ISSET(_exception))
+ if(!_exception)
{
- ICE_RESET_EXCEPTION(_exception, ex.ice_clone());
+ ICE_SET_EXCEPTION_FROM_CLONE(_exception, ex.ice_clone());
}
if(++_i == _endpoints.size())
{
- try
- {
- ICE_RETHROW_EXCEPTION(_exception);
- }
- catch(const Ice::LocalException& ee)
- {
- _callback->setException(ee);
- return;
- }
+ _callback->setException(*_exception);
+ return;
}
const bool more = _i != _endpoints.size() - 1;