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/08/31 16:27:08 UTC

[3/4] logging-log4j2 git commit: LOG4J2-1349 MutableContextDataSupplier::getMutableContextData must not return null

LOG4J2-1349 MutableContextDataSupplier::getMutableContextData must not return null


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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 22ef566e6f3524a13b2d1a3ff238908f81b2326a
Parents: c0368da
Author: rpopma <rp...@apache.org>
Authored: Thu Sep 1 00:21:43 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Thu Sep 1 00:21:43 2016 +0900

----------------------------------------------------------------------
 .../spi/CopyOnWriteSortedArrayThreadContextMap.java     |  3 ++-
 .../spi/GarbageFreeSortedArrayThreadContextMap.java     | 12 ++++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/22ef566e/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
index 1ccb81b..08bac8e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
@@ -157,7 +157,8 @@ public class CopyOnWriteSortedArrayThreadContextMap implements ThreadContextMap,
      */
     @Override
     public MutableContextData getMutableContextData() {
-        return localMap.get();
+        final MutableContextData map = localMap.get();
+        return map == null ? createMutableContextData() : map;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/22ef566e/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
index da04829..1fe2f65 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
@@ -139,7 +139,10 @@ public class GarbageFreeSortedArrayThreadContextMap implements ThreadContextMap,
 
     @Override
     public void clear() {
-        localMap.remove();
+        final MutableContextData map = localMap.get();
+        if (map != null) {
+            map.clear();
+        }
     }
 
     @Override
@@ -159,7 +162,12 @@ public class GarbageFreeSortedArrayThreadContextMap implements ThreadContextMap,
      */
     @Override
     public MutableContextData getMutableContextData() {
-        return localMap.get();
+        MutableContextData map = localMap.get();
+        if (map == null) {
+            map = createMutableContextData();
+            localMap.set(map);
+        }
+        return map;
     }
 
     @Override