diff options
author | Benoit Foucher <benoit@zeroc.com> | 2017-04-06 13:13:53 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2017-04-06 13:13:53 +0200 |
commit | 663bfbfb71d16a4b50e981984751a9ec81112962 (patch) | |
tree | bc6f22a3901aa9e5246726fafe2a4a75e6e1dd44 /java-compat/src | |
parent | Minor Util.py/Except.py fixes (diff) | |
download | ice-663bfbfb71d16a4b50e981984751a9ec81112962.tar.bz2 ice-663bfbfb71d16a4b50e981984751a9ec81112962.tar.xz ice-663bfbfb71d16a4b50e981984751a9ec81112962.zip |
Fixed ICE-7757 & ICE-7739 - IceLocatorDiscovery stops discovering locators
Diffstat (limited to 'java-compat/src')
-rw-r--r-- | java-compat/src/IceDiscovery/src/main/java/IceDiscovery/PluginI.java | 3 | ||||
-rw-r--r-- | java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java | 17 |
2 files changed, 10 insertions, 10 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 1e2074a65a2..bd8f1007fe5 100644 --- a/java-compat/src/IceDiscovery/src/main/java/IceDiscovery/PluginI.java +++ b/java-compat/src/IceDiscovery/src/main/java/IceDiscovery/PluginI.java @@ -101,6 +101,7 @@ public class PluginI implements Ice.Plugin // Setup locator on the communicator. // Ice.ObjectPrx locator = _locatorAdapter.addWithUUID(new LocatorI(lookup, locatorRegistryPrx)); + _defaultLocator = _communicator.getDefaultLocator(); _communicator.setDefaultLocator(Ice.LocatorPrxHelper.uncheckedCast(locator)); _multicastAdapter.activate(); @@ -115,10 +116,12 @@ public class PluginI implements Ice.Plugin _multicastAdapter.destroy(); _replyAdapter.destroy(); _locatorAdapter.destroy(); + _communicator.setDefaultLocator(_defaultLocator); } private Ice.Communicator _communicator; private Ice.ObjectAdapter _multicastAdapter; private Ice.ObjectAdapter _replyAdapter; private Ice.ObjectAdapter _locatorAdapter; + 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 c93137b7bee..2ee4d3b1d1d 100644 --- a/java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java +++ b/java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java @@ -381,19 +381,13 @@ class PluginI implements Plugin public synchronized void invoke(Ice.LocatorPrx locator, Request request) { - if(_locator != null && _locator != locator) + if(request != null && _locator != null && _locator != locator) { - if(request != null) - { - request.invoke(_locator); - } + request.invoke(_locator); } - else if(IceInternal.Time.currentMonotonicTimeMillis() < _nextRetry) + else if(request != null && IceInternal.Time.currentMonotonicTimeMillis() < _nextRetry) { - if(request != null) - { - request.invoke(_voidLocator); // Don't retry to find a locator before the retry delay expires - } + request.invoke(_voidLocator); // Don't retry to find a locator before the retry delay expires } else { @@ -567,6 +561,7 @@ class PluginI implements Plugin id.name = "Locator"; 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))); Ice.ObjectPrx lookupReply = _replyAdapter.addWithUUID(new LookupReplyI(_locator)).ice_datagram(); @@ -582,6 +577,7 @@ class PluginI implements Plugin { _replyAdapter.destroy(); _locatorAdapter.destroy(); + _communicator.setDefaultLocator(_defaultLocator); } @Override @@ -596,4 +592,5 @@ class PluginI implements Plugin private Ice.ObjectAdapter _locatorAdapter; private Ice.ObjectAdapter _replyAdapter; private LocatorI _locator; + private Ice.LocatorPrx _defaultLocator; } |