You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/09/08 14:53:26 UTC

[26/35] logging-log4j2 git commit: Tracked stopped state.

Tracked stopped state.

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/04de6771
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/04de6771
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/04de6771

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 04de677119c45a6b6e8d11b7e4d6a47c2ee7932c
Parents: f1049ec
Author: Gary Gregory <gg...@apache.org>
Authored: Thu Sep 8 00:36:24 2016 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Thu Sep 8 00:36:24 2016 -0700

----------------------------------------------------------------------
 .../logging/log4j/core/appender/routing/IdlePurgePolicy.java  | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/04de6771/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java
index 11fa757..8b87987 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java
@@ -59,12 +59,15 @@ public class IdlePurgePolicy extends AbstractLifeCycle implements PurgePolicy, R
 
     @Override
     public boolean stop(final long timeout, final TimeUnit timeUnit) {
+        boolean stopped = true;
         setStopping();
         if (future != null) {
-            future.cancel(true);
+            // cancel, then check state
+            stopped &= future.cancel(true);
+            stopped &= future.isCancelled() || future.isDone();
         }
         setStopped();
-        return true;
+        return stopped;
     }
 
     /**