diff options
author | Benoit Foucher <benoit@zeroc.com> | 2017-04-13 14:06:44 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2017-04-13 14:06:44 +0200 |
commit | b648cad742bd03461da002629d4ac90cc54df0ba (patch) | |
tree | 3c9cfb0f3df5f7f281fdab85f9b4f221bd5da665 /java-compat/src | |
parent | minor edits to changelog (diff) | |
download | ice-b648cad742bd03461da002629d4ac90cc54df0ba.tar.bz2 ice-b648cad742bd03461da002629d4ac90cc54df0ba.tar.xz ice-b648cad742bd03461da002629d4ac90cc54df0ba.zip |
Fixed ICE-7801 - icegridadmin discovered locator not set
Diffstat (limited to 'java-compat/src')
-rw-r--r-- | java-compat/src/IceDiscovery/src/main/java/IceDiscovery/PluginI.java | 10 | ||||
-rw-r--r-- | java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java | 10 |
2 files changed, 16 insertions, 4 deletions
diff --git a/java-compat/src/IceDiscovery/src/main/java/IceDiscovery/PluginI.java b/java-compat/src/IceDiscovery/src/main/java/IceDiscovery/PluginI.java index bd8f1007fe5..748a2ae83a8 100644 --- a/java-compat/src/IceDiscovery/src/main/java/IceDiscovery/PluginI.java +++ b/java-compat/src/IceDiscovery/src/main/java/IceDiscovery/PluginI.java @@ -102,7 +102,8 @@ public class PluginI implements Ice.Plugin // Ice.ObjectPrx locator = _locatorAdapter.addWithUUID(new LocatorI(lookup, locatorRegistryPrx)); _defaultLocator = _communicator.getDefaultLocator(); - _communicator.setDefaultLocator(Ice.LocatorPrxHelper.uncheckedCast(locator)); + _locator = Ice.LocatorPrxHelper.uncheckedCast(locator); + _communicator.setDefaultLocator(_locator); _multicastAdapter.activate(); _replyAdapter.activate(); @@ -116,12 +117,17 @@ public class PluginI implements Ice.Plugin _multicastAdapter.destroy(); _replyAdapter.destroy(); _locatorAdapter.destroy(); - _communicator.setDefaultLocator(_defaultLocator); + // Restore original default locator proxy, if the user didn't change it in the meantime + if(_communicator.getDefaultLocator().equals(_locator)) + { + _communicator.setDefaultLocator(_defaultLocator); + } } private Ice.Communicator _communicator; private Ice.ObjectAdapter _multicastAdapter; private Ice.ObjectAdapter _replyAdapter; private Ice.ObjectAdapter _locatorAdapter; + private Ice.LocatorPrx _locator; private Ice.LocatorPrx _defaultLocator; } diff --git a/java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java b/java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java index 2ee4d3b1d1d..2b49d63747d 100644 --- a/java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java +++ b/java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java @@ -562,7 +562,8 @@ class PluginI implements Plugin id.category = !instanceName.isEmpty() ? instanceName : java.util.UUID.randomUUID().toString(); _locator = new LocatorI(_name, LookupPrxHelper.uncheckedCast(lookupPrx), properties, instanceName, voidLoc); _defaultLocator = _communicator.getDefaultLocator(); - _communicator.setDefaultLocator(Ice.LocatorPrxHelper.uncheckedCast(_locatorAdapter.addWithUUID(_locator))); + _locatorPrx = Ice.LocatorPrxHelper.uncheckedCast(_locatorAdapter.addWithUUID(_locator)); + _communicator.setDefaultLocator(_locatorPrx); Ice.ObjectPrx lookupReply = _replyAdapter.addWithUUID(new LookupReplyI(_locator)).ice_datagram(); _locator.setLookupReply(LookupReplyPrxHelper.uncheckedCast(lookupReply)); @@ -577,7 +578,11 @@ class PluginI implements Plugin { _replyAdapter.destroy(); _locatorAdapter.destroy(); - _communicator.setDefaultLocator(_defaultLocator); + // Restore original default locator proxy, if the user didn't change it in the meantime + if(_communicator.getDefaultLocator().equals(_locatorPrx)) + { + _communicator.setDefaultLocator(_defaultLocator); + } } @Override @@ -592,5 +597,6 @@ class PluginI implements Plugin private Ice.ObjectAdapter _locatorAdapter; private Ice.ObjectAdapter _replyAdapter; private LocatorI _locator; + private Ice.LocatorPrx _locatorPrx; private Ice.LocatorPrx _defaultLocator; } |