diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2015-02-27 10:17:39 -0330 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2015-02-27 10:17:39 -0330 |
commit | 8207fb948b20c4bbe64ee21f2115420d947b0039 (patch) | |
tree | 5141cc7ba4d3902c215cf89ad3cbf40dd67e499c /java/src | |
parent | ICE-6185 Fix .NET TraceLogger to trace errors/warnings as proper type (diff) | |
download | ice-8207fb948b20c4bbe64ee21f2115420d947b0039.tar.bz2 ice-8207fb948b20c4bbe64ee21f2115420d947b0039.tar.xz ice-8207fb948b20c4bbe64ee21f2115420d947b0039.zip |
ICE-5967 add cancelation to Ice.Trace.Retry tracing
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/src/main/java/IceInternal/RetryQueue.java | 2 | ||||
-rw-r--r-- | java/src/Ice/src/main/java/IceInternal/RetryTask.java | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/java/src/Ice/src/main/java/IceInternal/RetryQueue.java b/java/src/Ice/src/main/java/IceInternal/RetryQueue.java index 74e74ff1438..adebdda58a3 100644 --- a/java/src/Ice/src/main/java/IceInternal/RetryQueue.java +++ b/java/src/Ice/src/main/java/IceInternal/RetryQueue.java @@ -22,7 +22,7 @@ public class RetryQueue { throw new Ice.CommunicatorDestroyedException(); } - RetryTask task = new RetryTask(this, outAsync); + RetryTask task = new RetryTask(_instance, this, outAsync); outAsync.cancelable(task); // This will throw if the request is canceled task.setFuture(_instance.timer().schedule(task, interval, java.util.concurrent.TimeUnit.MILLISECONDS)); _requests.add(task); diff --git a/java/src/Ice/src/main/java/IceInternal/RetryTask.java b/java/src/Ice/src/main/java/IceInternal/RetryTask.java index 7d90e7be85c..b91993c77a1 100644 --- a/java/src/Ice/src/main/java/IceInternal/RetryTask.java +++ b/java/src/Ice/src/main/java/IceInternal/RetryTask.java @@ -11,8 +11,9 @@ package IceInternal; class RetryTask implements Runnable, CancellationHandler { - RetryTask(RetryQueue queue, ProxyOutgoingAsyncBase outAsync) + RetryTask(Instance instance, RetryQueue queue, ProxyOutgoingAsyncBase outAsync) { + _instance = instance; _queue = queue; _outAsync = outAsync; } @@ -21,7 +22,7 @@ class RetryTask implements Runnable, CancellationHandler public void run() { _outAsync.retry(); - + // // NOTE: this must be called last, destroy() blocks until all task // are removed to prevent the client thread pool to be destroyed @@ -36,6 +37,13 @@ class RetryTask implements Runnable, CancellationHandler { if(_queue.remove(this) && _future.cancel(false)) { + if(_instance.traceLevels().retry >= 1) + { + StringBuilder s = new StringBuilder(128); + s.append("operation retry canceled\n"); + s.append(Ex.toString(ex)); + _instance.initializationData().logger.trace(_instance.traceLevels().retryCat, s.toString()); + } if(_outAsync.completed(ex)) { _outAsync.invokeCompletedAsync(); @@ -65,6 +73,7 @@ class RetryTask implements Runnable, CancellationHandler _future = future; } + private final Instance _instance; private final RetryQueue _queue; private final ProxyOutgoingAsyncBase _outAsync; private java.util.concurrent.Future<?> _future; |