You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2014/05/08 18:19:29 UTC

svn commit: r1593318 - in /logging/log4j/log4j2/trunk/log4j-api/src: main/java/org/apache/logging/log4j/ThreadContext.java test/java/org/apache/logging/log4j/NoopThreadContextTest.java

Author: ggregory
Date: Thu May  8 16:19:29 2014
New Revision: 1593318

URL: http://svn.apache.org/r1593318
Log:
Test order should not matter. When this test class is invoked from Eclipse for example, while running all tests in the project, it will fail. This change extracts the static block code into a method to be invoked from the test set up and tear down methods. Also make sure we do disable everything in the test. The refactoring also renames the svar all (all what?) to disableAll. I'm not sure why we even need this ivar...

Modified:
    logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
    logging/log4j/log4j2/trunk/log4j-api/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java

Modified: logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java?rev=1593318&r1=1593317&r2=1593318&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java (original)
+++ logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java Thu May  8 16:19:29 2014
@@ -60,7 +60,7 @@ public final class ThreadContext  {
     private static final String DISABLE_ALL = "disableThreadContext";
     private static final String THREAD_CONTEXT_KEY = "log4j2.threadContextMap";
 
-    private static boolean all;
+    private static boolean disableAll;
     private static boolean useMap;
     private static boolean useStack;
     private static ThreadContextMap contextMap;
@@ -68,12 +68,20 @@ public final class ThreadContext  {
     private static final Logger LOGGER = StatusLogger.getLogger();
 
     static {
+        init();
+    }
+        
+    /**
+     * <em>Consider private, used for testing.</em>
+     */
+    static void init() {
+        contextMap = null;
         final PropertiesUtil managerProps = PropertiesUtil.getProperties();
-        all = managerProps.getBooleanProperty(DISABLE_ALL);
-        useStack = !(managerProps.getBooleanProperty(DISABLE_STACK) || all);
-        contextStack = new DefaultThreadContextStack(useStack);
+        disableAll = managerProps.getBooleanProperty(DISABLE_ALL);
+        useStack = !(managerProps.getBooleanProperty(DISABLE_STACK) || disableAll);
+        useMap = !(managerProps.getBooleanProperty(DISABLE_MAP) || disableAll);
 
-        useMap = !(managerProps.getBooleanProperty(DISABLE_MAP) || all);
+        contextStack = new DefaultThreadContextStack(useStack);
         String threadContextMapName = managerProps.getStringProperty(THREAD_CONTEXT_KEY);
         final ClassLoader cl = ProviderUtil.findClassLoader();
         if (threadContextMapName != null) {
@@ -116,7 +124,7 @@ public final class ThreadContext  {
     }
 
     private ThreadContext() {
-
+        // empty
     }
 
     /**

Modified: logging/log4j/log4j2/trunk/log4j-api/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-api/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java?rev=1593318&r1=1593317&r2=1593318&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-api/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java (original)
+++ logging/log4j/log4j2/trunk/log4j-api/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java Thu May  8 16:19:29 2014
@@ -23,18 +23,26 @@ import org.junit.Test;
 import static org.junit.Assert.assertNull;
 
 /**
- *
+ * Tests {@link ThreadContext}.
  */
 public class NoopThreadContextTest {
 
+    private static final String TRUE = "true";
+    private static final String PROPERY_KEY_ALL = "disableThreadContext";
+    private static final String PROPERY_KEY_MAP = "disableThreadContextMap";
+
     @BeforeClass
     public static void before() {
-        System.setProperty("disableThreadContext", "true");
+        System.setProperty(PROPERY_KEY_ALL, TRUE);
+        System.setProperty(PROPERY_KEY_MAP, TRUE);
+        ThreadContext.init();
     }
 
     @AfterClass
     public static void after() {
-        System.clearProperty("disableThreadContext");
+        System.clearProperty(PROPERY_KEY_ALL);
+        System.clearProperty(PROPERY_KEY_MAP);
+        ThreadContext.init();
     }
 
     @Test