summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Glacier/Request.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/cpp/src/Glacier/Request.cpp b/cpp/src/Glacier/Request.cpp
index 221be673f2b..6167d4821c8 100644
--- a/cpp/src/Glacier/Request.cpp
+++ b/cpp/src/Glacier/Request.cpp
@@ -40,13 +40,20 @@ Glacier::Request::invoke()
if(_proxy->ice_isTwoway())
{
assert(_amiCB);
- if(_forwardContext)
+ try
{
- _proxy->ice_invoke_async(_amiCB, _current.operation, _current.mode, _inParams, _current.ctx);
+ if(_forwardContext)
+ {
+ _proxy->ice_invoke_async(_amiCB, _current.operation, _current.mode, _inParams, _current.ctx);
+ }
+ else
+ {
+ _proxy->ice_invoke_async(_amiCB, _current.operation, _current.mode, _inParams);
+ }
}
- else
+ catch(const Ice::Exception& ex)
{
- _proxy->ice_invoke_async(_amiCB, _current.operation, _current.mode, _inParams);
+ _amiCB->ice_exception(ex);
}
}
else