summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeSessionI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2007-01-17 13:20:58 +0000
committerBenoit Foucher <benoit@zeroc.com>2007-01-17 13:20:58 +0000
commit9ff75a5104445c691aa5d659b88ea289dd6e3a39 (patch)
tree532b3ef052628d68c57855f8008da37c7dcfe1f2 /cpp/src/IceGrid/NodeSessionI.cpp
parentFixed bug 1674 (diff)
downloadice-9ff75a5104445c691aa5d659b88ea289dd6e3a39.tar.bz2
ice-9ff75a5104445c691aa5d659b88ea289dd6e3a39.tar.xz
ice-9ff75a5104445c691aa5d659b88ea289dd6e3a39.zip
Fixed bug 1671 and other minor fixes
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionI.cpp')
-rw-r--r--cpp/src/IceGrid/NodeSessionI.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/NodeSessionI.cpp b/cpp/src/IceGrid/NodeSessionI.cpp
index d25e7bca653..83bcbb25d1a 100644
--- a/cpp/src/IceGrid/NodeSessionI.cpp
+++ b/cpp/src/IceGrid/NodeSessionI.cpp
@@ -156,8 +156,23 @@ NodeSessionI::NodeSessionI(const DatabasePtr& database,
Ice::ObjectPrx prx = _database->getInternalAdapter()->addWithUUID(this)->ice_timeout(timeout * 1000);
_proxy = NodeSessionPrx::uncheckedCast(prx);
}
+ catch(const NodeActiveException&)
+ {
+ __setNoDelete(false);
+ throw;
+ }
catch(...)
{
+ try
+ {
+ _database->removeInternalObject(_node->ice_getIdentity());
+ }
+ catch(const ObjectNotRegisteredException&)
+ {
+ }
+
+ _database->getNode(info->name)->setSession(0);
+
__setNoDelete(false);
throw;
}