summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/RetryQueue.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/RetryQueue.java')
-rw-r--r--java/src/IceInternal/RetryQueue.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/java/src/IceInternal/RetryQueue.java b/java/src/IceInternal/RetryQueue.java
index 023992f31f9..232ee1568cd 100644
--- a/java/src/IceInternal/RetryQueue.java
+++ b/java/src/IceInternal/RetryQueue.java
@@ -19,6 +19,10 @@ public class RetryQueue
synchronized public void
add(OutgoingAsyncMessageCallback outAsync, int interval)
{
+ if(_instance == null)
+ {
+ throw new Ice.CommunicatorDestroyedException();
+ }
RetryTask task = new RetryTask(this, outAsync);
task.setFuture(_instance.timer().schedule(task, interval, java.util.concurrent.TimeUnit.MILLISECONDS));
_requests.add(task);
@@ -27,6 +31,7 @@ public class RetryQueue
synchronized public void
destroy()
{
+ _instance = null;
for(RetryTask task : _requests)
{
task.destroy();
@@ -40,6 +45,6 @@ public class RetryQueue
return _requests.remove(task);
}
- final private Instance _instance;
+ private Instance _instance;
final private java.util.HashSet<RetryTask> _requests = new java.util.HashSet<RetryTask>();
}