You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ck...@apache.org on 2019/12/23 22:16:34 UTC

[logging-log4j2] 01/02: LOG4J2-2415 - Lock contention in classloader because of missing org.slf4j.ext.EventData (#324)

This is an automated email from the ASF dual-hosted git repository.

ckozak pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 932d35c94e40b7fd8c36130ab8e3c2c4c93e3e22
Author: Turbanov Andrey <tu...@gmail.com>
AuthorDate: Tue Dec 24 01:11:34 2019 +0300

    LOG4J2-2415 - Lock contention in classloader because of missing org.slf4j.ext.EventData (#324)
---
 .../src/main/java/org/apache/logging/slf4j/Log4jLogger.java      | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java b/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
index ec4decb..1fa8080 100644
--- a/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
+++ b/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
@@ -42,16 +42,16 @@ public class Log4jLogger implements LocationAwareLogger, Serializable {
 
     private static final long serialVersionUID = 7869000638091304316L;
     private static final Marker EVENT_MARKER = MarkerFactory.getMarker("EVENT");
+    private static final EventDataConverter CONVERTER = createConverter();
+
     private final boolean eventLogger;
     private transient ExtendedLogger logger;
     private final String name;
-    private transient EventDataConverter converter;
 
     public Log4jLogger(final ExtendedLogger logger, final String name) {
         this.logger = logger;
         this.eventLogger = "EventLogger".equals(name);
         this.name = name;
-        this.converter = createConverter();
     }
 
     @Override
@@ -363,8 +363,8 @@ public class Log4jLogger implements LocationAwareLogger, Serializable {
             return;
         }
         final Message msg;
-        if (eventLogger && marker != null && marker.contains(EVENT_MARKER) && converter != null) {
-            msg = converter.convertEvent(message, params, throwable);
+        if (CONVERTER != null && eventLogger && marker != null && marker.contains(EVENT_MARKER)) {
+            msg = CONVERTER.convertEvent(message, params, throwable);
         } else if (params == null) {
             msg = new SimpleMessage(message);
         } else {
@@ -400,7 +400,6 @@ public class Log4jLogger implements LocationAwareLogger, Serializable {
         // always perform the default de-serialization first
         aInputStream.defaultReadObject();
         logger = LogManager.getContext().getLogger(name);
-        converter = createConverter();
     }
 
     /**