summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2015-02-27 10:17:39 -0330
committerDwayne Boone <dwayne@zeroc.com>2015-02-27 10:17:39 -0330
commit8207fb948b20c4bbe64ee21f2115420d947b0039 (patch)
tree5141cc7ba4d3902c215cf89ad3cbf40dd67e499c /java/src
parentICE-6185 Fix .NET TraceLogger to trace errors/warnings as proper type (diff)
downloadice-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.java2
-rw-r--r--java/src/Ice/src/main/java/IceInternal/RetryTask.java13
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;