summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/ServerCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/ServerCache.cpp')
-rw-r--r--cpp/src/IceGrid/ServerCache.cpp19
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());
+ }
}
}
}