diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-10-20 14:12:40 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-10-20 14:12:40 +0000 |
commit | 718a17ed55eae3a26d07b4246037a35b1a62f812 (patch) | |
tree | 94b95e33f23a9cc749158010feb07d2f60a5b591 /java/src/IceGridGUI/SessionKeeper.java | |
parent | Observer fixes (diff) | |
download | ice-718a17ed55eae3a26d07b4246037a35b1a62f812.tar.bz2 ice-718a17ed55eae3a26d07b4246037a35b1a62f812.tar.xz ice-718a17ed55eae3a26d07b4246037a35b1a62f812.zip |
Fixed observers to use unique identity
Diffstat (limited to 'java/src/IceGridGUI/SessionKeeper.java')
-rwxr-xr-x | java/src/IceGridGUI/SessionKeeper.java | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/java/src/IceGridGUI/SessionKeeper.java b/java/src/IceGridGUI/SessionKeeper.java index 55e4b79beb5..df610dfca8b 100755 --- a/java/src/IceGridGUI/SessionKeeper.java +++ b/java/src/IceGridGUI/SessionKeeper.java @@ -220,15 +220,15 @@ class SessionKeeper // // Create servants and proxies // - _applicationObserverIdentity.name = "application"; + _applicationObserverIdentity.name = "application-" + Ice.Util.generateUUID(); _applicationObserverIdentity.category = category; - _adapterObserverIdentity.name = "adapter"; + _adapterObserverIdentity.name = "adapter-" + Ice.Util.generateUUID(); _adapterObserverIdentity.category = category; - _objectObserverIdentity.name = "object"; + _objectObserverIdentity.name = "object-" + Ice.Util.generateUUID(); _objectObserverIdentity.category = category; - _registryObserverIdentity.name = "registry"; + _registryObserverIdentity.name = "registry-" + Ice.Util.generateUUID(); _registryObserverIdentity.category = category; - _nodeObserverIdentity.name = "node"; + _nodeObserverIdentity.name = "node-" + Ice.Util.generateUUID(); _nodeObserverIdentity.category = category; ApplicationObserverI applicationObserverServant = new ApplicationObserverI( @@ -258,23 +258,30 @@ class SessionKeeper NodeObserverPrxHelper.uncheckedCast( _adapter.add( new NodeObserverI(_coordinator), _nodeObserverIdentity)); - - if(router != null) + + try { - _session.setObservers(registryObserver, - nodeObserver, - applicationObserver, - adapterObserver, - objectObserver); + if(router != null) + { + _session.setObservers(registryObserver, + nodeObserver, + applicationObserver, + adapterObserver, + objectObserver); + } + else + { + _session.setObserversByIdentity( + _registryObserverIdentity, + _nodeObserverIdentity, + _applicationObserverIdentity, + _adapterObserverIdentity, + _objectObserverIdentity); + } } - else + catch(ObserverAlreadyRegisteredException ex) { - _session.setObserversByIdentity( - _registryObserverIdentity, - _nodeObserverIdentity, - _applicationObserverIdentity, - _adapterObserverIdentity, - _objectObserverIdentity); + assert false; // We use UUIDs for the observer identities. } applicationObserverServant.waitForInit(); |