summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2010-04-05 13:48:54 -0700
committerMark Spruiell <mes@zeroc.com>2010-04-05 13:48:54 -0700
commit0a847eb2add5d58da1f37bcfef636fb17ec6c7f8 (patch)
treee3eff74295d166383aac139e5c5d2cad6013c7b7 /cpp/src
parentanother OpenSSL fix (diff)
downloadice-0a847eb2add5d58da1f37bcfef636fb17ec6c7f8.tar.bz2
ice-0a847eb2add5d58da1f37bcfef636fb17ec6c7f8.tar.xz
ice-0a847eb2add5d58da1f37bcfef636fb17ec6c7f8.zip
bug 4718 - Glacier2 helpers need to trap CommunicatorDestroyedException
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Glacier2Lib/Application.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/cpp/src/Glacier2Lib/Application.cpp b/cpp/src/Glacier2Lib/Application.cpp
index befb98bc0ff..2f587cd7a98 100644
--- a/cpp/src/Glacier2Lib/Application.cpp
+++ b/cpp/src/Glacier2Lib/Application.cpp
@@ -83,12 +83,23 @@ public:
IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor);
while(true)
{
- _router->refreshSession_async(new AMI_Router_refreshSessionI(_app, this));
+ try
+ {
+ _router->refreshSession_async(new AMI_Router_refreshSessionI(_app, this));
+ }
+ catch(const Ice::CommunicatorDestroyedException&)
+ {
+ //
+ // AMI requests can raise CommunicatorDestroyedException directly.
+ //
+ break;
+ }
if(!_done)
{
_monitor.timedWait(IceUtil::Time::seconds((int)_period));
}
+
if(_done)
{
break;