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

logging-log4j2 git commit: Keep workaround to make sure it works with Kafka 0.8

Repository: logging-log4j2
Updated Branches:
  refs/heads/master b679156b2 -> 404d47502


Keep workaround to make sure it works with Kafka 0.8


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

Branch: refs/heads/master
Commit: 404d47502a869f6bbe580d82346200184d2e6587
Parents: b679156
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Sep 28 16:39:24 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Sep 28 16:39:24 2016 +0200

----------------------------------------------------------------------
 .../log4j/core/appender/mom/kafka/KafkaManager.java  | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/404d4750/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
index c5347a2..9302beb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
@@ -58,7 +58,20 @@ public class KafkaManager extends AbstractManager {
     @Override
     public boolean releaseSub(final long timeout, final TimeUnit timeUnit) {
         if (producer != null) {
-            producer.close(timeout, timeUnit);
+            // This thread is a workaround for this Kafka issue: https://issues.apache.org/jira/browse/KAFKA-1660
+            final Runnable task = new Runnable() {
+                @Override
+                public void run() {
+                    if (producer != null) {
+                        producer.close();
+                    }
+                }
+            };
+            try {
+                getLoggerContext().submitDaemon(task).get(timeout, timeUnit);
+            } catch (InterruptedException | ExecutionException | TimeoutException e) {
+                // ignore
+            }
         }
         return true;
     }