diff options
Diffstat (limited to 'cpp/src/IceGrid/ServerCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/ServerCache.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp index 62fdfe8bd33..8e38f837418 100644 --- a/cpp/src/IceGrid/ServerCache.cpp +++ b/cpp/src/IceGrid/ServerCache.cpp @@ -580,7 +580,24 @@ ServerEntry::syncImpl(bool waitForUpdate) } if(_exception.get()) { - _exception->ice_throw(); + try + { + _exception->ice_throw(); + } + catch(const DeploymentException&) + { + throw; + } + catch(const NodeUnreachableException&) + { + throw; + } + catch(const Ice::Exception& ex) + { + ostringstream os; + os << "unexpected exception while synchronizing server `" + _id + "':\n" << ex; + throw DeploymentException(os.str()); + } } } } |