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 2016/03/27 07:42:38 UTC

logging-log4j2 git commit: LOG4J2-1333 Avoid allocating unnecessary temporary objects in MarkerManager's getMarker methods

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 62e2a6016 -> 0f750ebb8


LOG4J2-1333 Avoid allocating unnecessary temporary objects in MarkerManager's getMarker methods


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

Branch: refs/heads/master
Commit: 0f750ebb86a35a76a9714c55a15573bfb2560434
Parents: 62e2a60
Author: rpopma <rp...@apache.org>
Authored: Sun Mar 27 14:42:42 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Sun Mar 27 14:42:42 2016 +0900

----------------------------------------------------------------------
 .../java/org/apache/logging/log4j/MarkerManager.java     | 11 +++++++----
 src/changes/changes.xml                                  |  3 +++
 2 files changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0f750ebb/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java b/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java
index d57c483..c7220c6 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java
@@ -59,8 +59,12 @@ public final class MarkerManager {
      * @throws IllegalArgumentException if the argument is {@code null}
      */
     public static Marker getMarker(final String name) {
-        MARKERS.putIfAbsent(name, new Log4jMarker(name));
-        return MARKERS.get(name);
+        Marker result = MARKERS.get(name);
+        if (result == null) {
+            MARKERS.putIfAbsent(name, new Log4jMarker(name));
+            result = MARKERS.get(name);
+        }
+        return result;
     }
 
     /**
@@ -94,8 +98,7 @@ public final class MarkerManager {
      */
     @Deprecated
     public static Marker getMarker(final String name, final Marker parent) {
-        MARKERS.putIfAbsent(name, new Log4jMarker(name));
-        return MARKERS.get(name).addParents(parent);
+        return getMarker(name).addParents(parent);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0f750ebb/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3f23129..46661a5 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -27,6 +27,9 @@
       <action issue="LOG4J2-1324" dev="rpopma" type="fix">
         Improve error handling in the Async Logger background thread: the new default exception handler no longer rethrows the error.
       </action>
+      <action issue="LOG4J2-1333" dev="rpopma" type="update">
+        Avoid allocating unnecessary temporary objects in MarkerManager's getMarker methods.
+      </action>
       <action issue="LOG4J2-1321" dev="rpopma" type="update">
         Avoid allocating unnecessary temporary objects in PatternLayout's NamePatternConverter and ClassNamePatternConverter.
       </action>