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 <ggreg...@apache.org> Authored: Thu Sep 8 00:36:24 2016 -0700 Committer: Gary Gregory <ggreg...@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; } /**