diff options
Diffstat (limited to 'java/src/IceInternal/RetryQueue.java')
-rw-r--r-- | java/src/IceInternal/RetryQueue.java | 7 |
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>(); } |