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(); } }