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
