LOG4J2-1422 AsyncAppender$AsyncThread.shutdown() now verifies if the underlying appender is sleeping/waiting/joining/parked, and if so, interrupt()s the thread
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f783408e Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f783408e Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f783408e Branch: refs/heads/master Commit: f783408eb32d374a90ac828a25537687b4a696b3 Parents: 4f57c7e Author: rpopma <[email protected]> Authored: Sat Jun 11 02:35:58 2016 +0900 Committer: rpopma <[email protected]> Committed: Sat Jun 11 02:35:58 2016 +0900 ---------------------------------------------------------------------- .../org/apache/logging/log4j/core/appender/AsyncAppender.java | 3 +++ 1 file changed, 3 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f783408e/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java index 0abb07e..7a449d2 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java @@ -349,6 +349,9 @@ public final class AsyncAppender extends AbstractAppender { if (queue.isEmpty()) { queue.offer(SHUTDOWN); } + if (getState() == State.TIMED_WAITING || getState() == State.WAITING) { + this.interrupt(); // LOG4J2-1422: if underlying appender is stuck in wait/sleep/join/park call + } } }
