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