Added test for LOG4J2-807 which passes but prints NPE on the console.
This test should fail but how can we detect the error condition?

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

Branch: refs/heads/messaging-module
Commit: b8c8bb3cee86018dc2d6d3cd46886ec8e9fb5494
Parents: 70adb1b
Author: Gary Gregory <[email protected]>
Authored: Fri Aug 29 11:43:42 2014 -0400
Committer: Gary Gregory <[email protected]>
Committed: Fri Aug 29 11:43:42 2014 -0400

----------------------------------------------------------------------
 log4j-core/LOG4J2-807.log                       | 24 +++++++++++
 .../log4j/core/async/AsyncRootReloadTest.java   | 44 ++++++++++++++++++++
 log4j-core/src/test/resources/LOG4J2-807.xml    | 15 +++++++
 3 files changed, 83 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b8c8bb3c/log4j-core/LOG4J2-807.log
----------------------------------------------------------------------
diff --git a/log4j-core/LOG4J2-807.log b/log4j-core/LOG4J2-807.log
new file mode 100644
index 0000000..c19c011
--- /dev/null
+++ b/log4j-core/LOG4J2-807.log
@@ -0,0 +1,24 @@
+2014-08-29 11:28:47,762 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j 
configured, will be reconfigured in aprox. 5 sec
+2014-08-29 11:28:48,763 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:28:49,763 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:28:50,763 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:28:51,764 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:28:52,764 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:28:53,764 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:28:54,764 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:35:26,288 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j 
configured, will be reconfigured in aprox. 5 sec
+2014-08-29 11:35:27,290 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:35:28,291 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:35:29,291 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:35:30,291 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:35:31,291 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:35:32,291 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:35:33,291 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:41:38,331 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j 
configured, will be reconfigured in aprox. 5 sec
+2014-08-29 11:41:39,332 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:41:40,332 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:41:41,332 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:41:42,332 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:41:43,332 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:41:44,332 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration
+2014-08-29 11:41:45,332 INFO  [o.a.l.l.c.a.AsyncRootReloadTest] Log4j waiting 
for reconfiguration

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b8c8bb3c/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java
 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java
new file mode 100644
index 0000000..20aa919
--- /dev/null
+++ 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java
@@ -0,0 +1,44 @@
+package org.apache.logging.log4j.core.async;
+
+import java.io.File;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.util.FileUtils;
+import org.apache.logging.log4j.junit.CleanFiles;
+import org.apache.logging.log4j.junit.InitialLoggerContext;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.RuleChain;
+
+/**
+ * Tests LOG4J2-807.
+ */
+public class AsyncRootReloadTest {
+
+    private static final String ISSUE = "LOG4J2-807";
+    private static final String ISSUE_CONFIG = ISSUE + ".xml";
+    private static final String LOG = "target/" + ISSUE + ".log";
+    private static final String RESOURCE = "classpath:" + ISSUE_CONFIG;
+
+    @Rule
+    public RuleChain rules = RuleChain.outerRule(new 
CleanFiles(LOG)).around(new InitialLoggerContext(RESOURCE));
+
+    @Test
+    public void testLog4j2_807() throws InterruptedException, 
URISyntaxException {
+        URL url = AsyncRootReloadTest.class.getResource("/" + ISSUE_CONFIG);
+        final File configFile = FileUtils.fileFromUri(url.toURI());
+
+        Logger logger = LogManager.getLogger(AsyncRootReloadTest.class);
+        logger.info("Log4j configured, will be reconfigured in aprox. 5 sec");
+
+        configFile.setLastModified(System.currentTimeMillis());
+
+        for (int i = 0; i < 10; i++) {
+            Thread.sleep(1000);
+            logger.info("Log4j waiting for reconfiguration");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b8c8bb3c/log4j-core/src/test/resources/LOG4J2-807.xml
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/resources/LOG4J2-807.xml 
b/log4j-core/src/test/resources/LOG4J2-807.xml
new file mode 100644
index 0000000..70f0bac
--- /dev/null
+++ b/log4j-core/src/test/resources/LOG4J2-807.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration name="asynRootConfig" monitorInterval="5" status="debug">
+  <Appenders>
+    <RandomAccessFile name="FILE_APPENDER" fileName="LOG4J2-807.log" 
immediateFlush="false" append="true">
+      <PatternLayout>
+        <Pattern>%d %-5p [%c{1.}] %m%n</Pattern>
+      </PatternLayout>
+    </RandomAccessFile>
+  </Appenders>
+  <Loggers>
+    <asyncRoot level="debug">
+      <AppenderRef ref="FILE_APPENDER" />
+    </asyncRoot>
+  </Loggers>
+</Configuration>
\ No newline at end of file

Reply via email to