summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeCache.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2008-10-23 18:13:24 +0200
committerBenoit Foucher <benoit@zeroc.com>2008-10-23 18:13:24 +0200
commitad3522c882b1e2b889ac2a2c60e189e9f89f3b80 (patch)
tree2960cc1f1b4741ba864393eb02046b6834db05e5 /cpp/src/IceGrid/NodeCache.cpp
parentForgot to commit one file for previous fix (diff)
downloadice-ad3522c882b1e2b889ac2a2c60e189e9f89f3b80.tar.bz2
ice-ad3522c882b1e2b889ac2a2c60e189e9f89f3b80.tar.xz
ice-ad3522c882b1e2b889ac2a2c60e189e9f89f3b80.zip
Fixed locator implementation to not serialize anymore locator request for non round-robin replica groups also fixed an issue where the registry would try to re-activate servers while the node is shutting down
Diffstat (limited to 'cpp/src/IceGrid/NodeCache.cpp')
-rw-r--r--cpp/src/IceGrid/NodeCache.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/cpp/src/IceGrid/NodeCache.cpp b/cpp/src/IceGrid/NodeCache.cpp
index b9b8b478243..3e2b67a2025 100644
--- a/cpp/src/IceGrid/NodeCache.cpp
+++ b/cpp/src/IceGrid/NodeCache.cpp
@@ -746,8 +746,12 @@ NodeEntry::__decRef()
void
NodeEntry::checkSession() const
{
- if(_session && !_session->isDestroyed())
+ if(_session)
{
+ if(_session->isDestroyed())
+ {
+ throw NodeUnreachableException(_name, "the node is not active");
+ }
return;
}
else if(!_proxy && !_registering)
@@ -787,7 +791,7 @@ NodeEntry::checkSession() const
}
}
- if(!_session)
+ if(!_session || _session->isDestroyed())
{
throw NodeUnreachableException(_name, "the node is not active");
}