diff options
author | Benoit Foucher <benoit@zeroc.com> | 2007-01-17 13:20:58 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2007-01-17 13:20:58 +0000 |
commit | 9ff75a5104445c691aa5d659b88ea289dd6e3a39 (patch) | |
tree | 532b3ef052628d68c57855f8008da37c7dcfe1f2 /cpp/src/IceGrid/NodeSessionI.cpp | |
parent | Fixed bug 1674 (diff) | |
download | ice-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.cpp | 15 |
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; } |