summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeSessionI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionI.cpp')
-rw-r--r--cpp/src/IceGrid/NodeSessionI.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/cpp/src/IceGrid/NodeSessionI.cpp b/cpp/src/IceGrid/NodeSessionI.cpp
index dd30db0f798..2b19cfc59b1 100644
--- a/cpp/src/IceGrid/NodeSessionI.cpp
+++ b/cpp/src/IceGrid/NodeSessionI.cpp
@@ -70,7 +70,7 @@ NodeSessionI::getTimeout(const Ice::Current& current) const
NodeObserverPrx
NodeSessionI::getObserver(const Ice::Current& current) const
{
- NodeObserverTopicPtr topic = _database->getNodeObserverTopic();
+ NodeObserverTopicPtr topic = NodeObserverTopicPtr::dynamicCast(_database->getObserverTopic(NodeObserverTopicName));
if(topic)
{
return topic->getPublisher();
@@ -90,14 +90,15 @@ NodeSessionI::getServers(const Ice::Current& current) const
void
NodeSessionI::destroy(const Ice::Current& current)
{
- Lock sync(*this);
- if(_destroy)
{
- throw Ice::ObjectNotExistException(__FILE__, __LINE__);
+ Lock sync(*this);
+ if(_destroy)
+ {
+ throw Ice::ObjectNotExistException(__FILE__, __LINE__);
+ }
+ _destroy = true;
}
- _destroy = true;
-
_database->removeNode(_name, this, !current.adapter);
if(current.adapter)
@@ -106,7 +107,6 @@ NodeSessionI::destroy(const Ice::Current& current)
{
current.adapter->remove(current.id);
}
-
catch(const Ice::ObjectAdapterDeactivatedException&)
{
}