summaryrefslogtreecommitdiff
path: root/java-compat/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-04-06 13:13:53 +0200
committerBenoit Foucher <benoit@zeroc.com>2017-04-06 13:13:53 +0200
commit663bfbfb71d16a4b50e981984751a9ec81112962 (patch)
treebc6f22a3901aa9e5246726fafe2a4a75e6e1dd44 /java-compat/src
parentMinor Util.py/Except.py fixes (diff)
downloadice-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.java3
-rw-r--r--java-compat/src/IceLocatorDiscovery/src/main/java/IceLocatorDiscovery/PluginI.java17
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;
}