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>