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 2014/09/20 06:59:36 UTC

git commit: LOG4J2-830 Respect interrupt signal to allow application shutdown after joining AsyncAppender thread.

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 551ae399a -> e20ac291a


LOG4J2-830 Respect interrupt signal to allow application shutdown after
joining AsyncAppender 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/e20ac291
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/e20ac291
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/e20ac291

Branch: refs/heads/master
Commit: e20ac291a0c65950d20de588bcfe6af0f22be2ea
Parents: 551ae39
Author: rpopma <rp...@apache.org>
Authored: Sat Sep 20 13:59:38 2014 +0900
Committer: rpopma <rp...@apache.org>
Committed: Sat Sep 20 13:59:38 2014 +0900

----------------------------------------------------------------------
 .../org/apache/logging/log4j/core/appender/AsyncAppender.java    | 4 ++--
 src/changes/changes.xml                                          | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e20ac291/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 6149726..c5fef86 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
@@ -233,8 +233,7 @@ public final class AsyncAppender extends AbstractAppender {
                         continue;
                     }
                 } catch (final InterruptedException ex) {
-                    // No good reason for this.
-                    continue;
+                    break; // LOG4J2-830
                 }
                 final Log4jLogEvent event = Log4jLogEvent.deserialize(s);
                 event.setEndOfBatch(queue.isEmpty());
@@ -266,6 +265,7 @@ public final class AsyncAppender extends AbstractAppender {
                     }
                 } catch (final InterruptedException ex) {
                     // May have been interrupted to shut down.
+                    // Here we ignore interrupts and try to process all remaining events.
                 }
             }
             LOGGER.trace("AsyncAppender.AsyncThread stopped. Queue has {} events remaining. " +

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e20ac291/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3873e4a..8455cf6 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,9 @@
   </properties>
   <body>
     <release version="2.1" date="2014-??-??" description="Bug fixes and enhancements">
+      <action issue="LOG4J2-830" dev="rpopma" type="fix">
+        Respect external interrupt signal to allow application shutdown after joining AsyncAppender thread.
+      </action>
       <action issue="LOG4J2-813" dev="ggregory" type="fix" due-to="David Erichsen, Brandon Barry">
         MarkerManager Log4jMarker.hasParents() returns opposite of correct result.
       </action>