LOG4J2-1447 change the contract of ThreadContextMap2 to include the role of 
MutableContextDataSupplier


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

Branch: refs/heads/master
Commit: e1b86f515e6f97866fa2e6ff8a3ba054c315a934
Parents: fc68248
Author: rpopma <rpo...@apache.org>
Authored: Thu Sep 22 11:01:04 2016 +0900
Committer: rpopma <rpo...@apache.org>
Committed: Thu Sep 22 11:01:04 2016 +0900

----------------------------------------------------------------------
 .../src/main/java/org/apache/logging/log4j/ThreadContext.java     | 3 +++
 .../org/apache/logging/log4j/spi/DefaultThreadContextMap.java     | 3 +--
 .../main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1b86f51/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
----------------------------------------------------------------------
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
index 4636469..f282397 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
@@ -27,6 +27,7 @@ import java.util.Map;
 import java.util.NoSuchElementException;
 
 import org.apache.logging.log4j.message.ParameterizedMessage;
+import org.apache.logging.log4j.spi.DefaultThreadContextMap;
 import org.apache.logging.log4j.spi.DefaultThreadContextStack;
 import org.apache.logging.log4j.spi.NoOpThreadContextMap;
 import org.apache.logging.log4j.spi.ThreadContextMap;
@@ -249,6 +250,8 @@ public final class ThreadContext {
     public static void putAll(final Map<String, String> m) {
         if (contextMap instanceof ThreadContextMap2) {
             ((ThreadContextMap2) contextMap).putAll(m);
+        } else if (contextMap instanceof DefaultThreadContextMap) {
+            ((DefaultThreadContextMap) contextMap).putAll(m);
         } else {
             for (final Map.Entry<String, String> entry: m.entrySet()) {
                 contextMap.put(entry.getKey(), entry.getValue());

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1b86f51/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java
----------------------------------------------------------------------
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java
index 1c01c0b..143c2e1 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java
@@ -30,7 +30,7 @@ import org.apache.logging.log4j.util.TriConsumer;
  * expected that the Map will be passed to many more log events than the 
number of keys it contains the performance
  * should be much better than if the Map was copied for each event.
  */
-public class DefaultThreadContextMap implements ThreadContextMap2, ContextData 
{
+public class DefaultThreadContextMap implements ThreadContextMap, ContextData {
 
     /**
      * Property name ({@value} ) for selecting {@code InheritableThreadLocal} 
(value "true") or plain
@@ -80,7 +80,6 @@ public class DefaultThreadContextMap implements 
ThreadContextMap2, ContextData {
         localMap.set(Collections.unmodifiableMap(map));
     }
 
-    @Override
     public void putAll(final Map<String, String> m) {
         if (!useMap) {
             return;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1b86f51/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java
----------------------------------------------------------------------
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java
index 4def1b3..6f831c3 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java
@@ -25,7 +25,7 @@ import java.util.Map;
  * @see ThreadContextMap
  * @since 2.7
  */
-public interface ThreadContextMap2 extends ThreadContextMap {
+public interface ThreadContextMap2 extends ThreadContextMap, 
MutableContextDataSupplier {
 
     /**
      * Puts all given context map entries into the current thread's

Reply via email to