summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/SessionKeeper.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-10-20 14:12:40 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-10-20 14:12:40 +0000
commit718a17ed55eae3a26d07b4246037a35b1a62f812 (patch)
tree94b95e33f23a9cc749158010feb07d2f60a5b591 /java/src/IceGridGUI/SessionKeeper.java
parentObserver fixes (diff)
downloadice-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-xjava/src/IceGridGUI/SessionKeeper.java45
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();