summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Instance.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/Instance.java')
-rw-r--r--java/src/IceInternal/Instance.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java
index 1ee242ba63c..2578f5b018e 100644
--- a/java/src/IceInternal/Instance.java
+++ b/java/src/IceInternal/Instance.java
@@ -201,6 +201,17 @@ public final class Instance
return _endpointHostResolver;
}
+ synchronized public RetryQueue
+ retryQueue()
+ {
+ if(_state == StateDestroyed)
+ {
+ throw new Ice.CommunicatorDestroyedException();
+ }
+
+ return _retryQueue;
+ }
+
synchronized public Timer
timer()
{
@@ -713,6 +724,8 @@ public final class Instance
_objectAdapterFactory = new ObjectAdapterFactory(this, communicator);
+ _retryQueue = new RetryQueue(this);
+
//
// Add Process and Properties facets
//
@@ -753,6 +766,7 @@ public final class Instance
IceUtilInternal.Assert.FinalizerAssert(_locatorManager == null);
IceUtilInternal.Assert.FinalizerAssert(_endpointFactoryManager == null);
IceUtilInternal.Assert.FinalizerAssert(_pluginManager == null);
+ IceUtilInternal.Assert.FinalizerAssert(_retryQueue == null);
super.finalize();
}
@@ -868,6 +882,11 @@ public final class Instance
{
_outgoingConnectionFactory.waitUntilFinished();
}
+
+ if(_retryQueue != null)
+ {
+ _retryQueue.destroy();
+ }
ThreadPool serverThreadPool = null;
ThreadPool clientThreadPool = null;
@@ -877,8 +896,8 @@ public final class Instance
synchronized(this)
{
_objectAdapterFactory = null;
-
_outgoingConnectionFactory = null;
+ _retryQueue = null;
if(_connectionMonitor != null)
{
@@ -1054,6 +1073,7 @@ public final class Instance
private ThreadPool _serverThreadPool;
private SelectorThread _selectorThread;
private EndpointHostResolver _endpointHostResolver;
+ private RetryQueue _retryQueue;
private Timer _timer;
private EndpointFactoryManager _endpointFactoryManager;
private Ice.PluginManager _pluginManager;