Repository: logging-log4j2
Updated Branches:
  refs/heads/LOG4J2-1349-gcfree-threadcontext 7994789d2 -> def057ff0


LOG4J2-1349 implement the new ContextDataInjector::rawContextData() method 
introduced in LOG4J2-1010 in an efficient manner


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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 1600bb2f705580a8a92f7ae8bb30ab7d7aed6d07
Parents: 7994789
Author: rpopma <rpo...@apache.org>
Authored: Mon Aug 29 00:30:41 2016 +0900
Committer: rpopma <rpo...@apache.org>
Committed: Mon Aug 29 00:30:41 2016 +0900

----------------------------------------------------------------------
 .../log4j/core/impl/ThreadContextDataInjector.java    | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1600bb2f/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
index 0e31a9a..65980f7 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
@@ -25,6 +25,7 @@ import org.apache.logging.log4j.core.config.Property;
 import org.apache.logging.log4j.spi.ContextData;
 import org.apache.logging.log4j.spi.MutableContextData;
 import org.apache.logging.log4j.spi.MutableContextDataSupplier;
+import org.apache.logging.log4j.spi.ThreadContextMap;
 
 /**
  * {@code ThreadContextDataInjector} contains a number of strategies for 
copying key-value pairs from the various
@@ -71,7 +72,10 @@ public class ThreadContextDataInjector  {
 
         @Override
         public ContextData rawContextData() {
-            // TODO LOG4J2-1349: DefaultThreadContextMap itself implements the 
ContextData interface
+            final ThreadContextMap map = 
ThreadContextAccess.getThreadContextMap();
+            if (map instanceof ContextData) {
+                return (ContextData) map;
+            }
             final MutableContextData result = 
ContextDataFactory.createContextData();
             copyThreadContextMap(ThreadContext.getImmutableContext(), result);
             return result;
@@ -122,9 +126,7 @@ public class ThreadContextDataInjector  {
 
         @Override
         public ContextData rawContextData() {
-            // TODO LOG4J2-1349
-            //return ((AbstractGarbageFreeMutableThreadContext) 
ThreadContext.getThreadContextMap()).getContextData();
-            return null;
+            return ((MutableContextDataSupplier) 
ThreadContextAccess.getThreadContextMap()).getMutableContextData();
         }
     }
 
@@ -164,9 +166,7 @@ public class ThreadContextDataInjector  {
 
         @Override
         public ContextData rawContextData() {
-            // TODO LOG4J2-1349
-            //return ((AbstractCopyOnWriteMutableThreadContext) 
ThreadContext.getThreadContextMap()).getContextData();
-            return null;
+            return ((MutableContextDataSupplier) 
ThreadContextAccess.getThreadContextMap()).getMutableContextData();
         }
     }
 

Reply via email to