You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2015/08/18 12:20:53 UTC

logging-log4j2 git commit: Don't look up entries more than once in a map.

Repository: logging-log4j2
Updated Branches:
  refs/heads/master ae9b812c8 -> 1a88e44a9


Don't look up entries more than once in a map.

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

Branch: refs/heads/master
Commit: 1a88e44a9ccaf61b4eff4a8c477d7bfeb3ebebb1
Parents: ae9b812
Author: ggregory <gg...@apache.org>
Authored: Tue Aug 18 03:20:50 2015 -0700
Committer: ggregory <gg...@apache.org>
Committed: Tue Aug 18 03:20:50 2015 -0700

----------------------------------------------------------------------
 log4j-api/src/main/java/org/apache/logging/log4j/Level.java | 5 +++--
 .../apache/logging/log4j/simple/SimpleLoggerContext.java    | 9 ++++-----
 .../org/apache/logging/log4j/spi/AbstractLoggerAdapter.java | 5 +++--
 .../java/org/apache/logging/log4j/TestLoggerContext.java    | 5 +++--
 4 files changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1a88e44a/log4j-api/src/main/java/org/apache/logging/log4j/Level.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/Level.java b/log4j-api/src/main/java/org/apache/logging/log4j/Level.java
index b20a5ff..a22f39c 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/Level.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/Level.java
@@ -279,8 +279,9 @@ public final class Level implements Comparable<Level>, Serializable {
     public static Level valueOf(final String name) {
     	Objects.requireNonNull(name, "No level name given.");
         final String levelName = name.toUpperCase(Locale.ENGLISH);
-        if (levels.containsKey(levelName)) {
-            return levels.get(levelName);
+        final Level level = levels.get(levelName);
+        if (level != null) {
+			return level;
         }
         throw new IllegalArgumentException("Unknown level constant [" + levelName + "].");
     }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1a88e44a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java
index 98906c9..34d11cb 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java
@@ -99,12 +99,11 @@ public class SimpleLoggerContext implements LoggerContext {
 
     @Override
     public ExtendedLogger getLogger(final String name, final MessageFactory messageFactory) {
-        if (loggers.containsKey(name)) {
-            final ExtendedLogger logger = loggers.get(name);
-            AbstractLogger.checkMessageFactory(logger, messageFactory);
-            return logger;
+        final ExtendedLogger extendedLogger = loggers.get(name);
+        if (extendedLogger != null) {
+			AbstractLogger.checkMessageFactory(extendedLogger, messageFactory);
+            return extendedLogger;
         }
-
         loggers.putIfAbsent(name, new SimpleLogger(name, defaultLevel, showLogName, showShortName, showDateTime,
                 showContextMap, dateTimeFormat, messageFactory, props, stream));
         return loggers.get(name);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1a88e44a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java
index 1ffc5d8..8dc44e1 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLoggerAdapter.java
@@ -41,8 +41,9 @@ public abstract class AbstractLoggerAdapter<L> implements LoggerAdapter<L> {
     public L getLogger(final String name) {
         final LoggerContext context = getContext();
         final ConcurrentMap<String, L> loggers = getLoggersInContext(context);
-        if (loggers.containsKey(name)) {
-            return loggers.get(name);
+        final L logger = loggers.get(name);
+        if (logger != null) {
+			return logger;
         }
         loggers.putIfAbsent(name, newLogger(name, context));
         return loggers.get(name);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1a88e44a/log4j-api/src/test/java/org/apache/logging/log4j/TestLoggerContext.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/TestLoggerContext.java b/log4j-api/src/test/java/org/apache/logging/log4j/TestLoggerContext.java
index d0b89dd..5aac379 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/TestLoggerContext.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/TestLoggerContext.java
@@ -31,8 +31,9 @@ public class TestLoggerContext implements LoggerContext {
 
     @Override
     public ExtendedLogger getLogger(final String name) {
-        if (map.containsKey(name)) {
-            return map.get(name);
+        final ExtendedLogger extendedLogger = map.get(name);
+        if (extendedLogger != null) {
+			return extendedLogger;
         }
         final ExtendedLogger logger = new TestLogger(name);
         map.put(name, logger);