Florin Marinoiu (JIRA)
2014-08-29 15:01:01 UTC
Florin Marinoiu created LOG4J2-807:
--------------------------------------
Summary: Disruptor is null when configuration is reloaded (asyncRoot + monitorInterval)
Key: LOG4J2-807
URL: https://issues.apache.org/jira/browse/LOG4J2-807
Project: Log4j 2
Issue Type: Bug
Affects Versions: 2.0.2
Reporter: Florin Marinoiu
We have a XML configuration with <asyncRoot> and monitorInterval. When the configuration file is reloaded I have a NPE and log4j become unavailable:
{code}
2014-08-29 10:39:59,079 ERROR Could not register mbeans java.lang.NullPointerException
at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper.createRingBufferAdmin(AsyncLoggerConfigHelper.java:360)
at org.apache.logging.log4j.core.async.AsyncLoggerConfig.createRingBufferAdmin(AsyncLoggerConfig.java:148)
{code}
Here is my config:
{code}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration name="asynRootConfig" monitorInterval="5" status="debug">
<Appenders>
<RandomAccessFile name="FILE_APPENDER" fileName="application.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>
{code}
And a code snippet to reproduce:
{code}
public class Log4jAsyncRootReloadTest {
public static void main(String[] args) throws InterruptedException {
final File config = new File("./log4j2.xml");
System.setProperty("log4j.configurationFile", "file://" + config.getAbsolutePath().replaceAll("\\\\", "/"));
Logger logger = LogManager.getLogger(Log4jAsyncRootReloadTest.class);
logger.info("Log4j configured, will be reconfigured in aprox. 5 sec");
config.setLastModified(System.currentTimeMillis());
for (int i = 0; i < 10; i++) {
Thread.sleep(1000);
logger.info("Log4j waiting for reconfiguration");
}
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
--------------------------------------
Summary: Disruptor is null when configuration is reloaded (asyncRoot + monitorInterval)
Key: LOG4J2-807
URL: https://issues.apache.org/jira/browse/LOG4J2-807
Project: Log4j 2
Issue Type: Bug
Affects Versions: 2.0.2
Reporter: Florin Marinoiu
We have a XML configuration with <asyncRoot> and monitorInterval. When the configuration file is reloaded I have a NPE and log4j become unavailable:
{code}
2014-08-29 10:39:59,079 ERROR Could not register mbeans java.lang.NullPointerException
at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper.createRingBufferAdmin(AsyncLoggerConfigHelper.java:360)
at org.apache.logging.log4j.core.async.AsyncLoggerConfig.createRingBufferAdmin(AsyncLoggerConfig.java:148)
{code}
Here is my config:
{code}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration name="asynRootConfig" monitorInterval="5" status="debug">
<Appenders>
<RandomAccessFile name="FILE_APPENDER" fileName="application.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>
{code}
And a code snippet to reproduce:
{code}
public class Log4jAsyncRootReloadTest {
public static void main(String[] args) throws InterruptedException {
final File config = new File("./log4j2.xml");
System.setProperty("log4j.configurationFile", "file://" + config.getAbsolutePath().replaceAll("\\\\", "/"));
Logger logger = LogManager.getLogger(Log4jAsyncRootReloadTest.class);
logger.info("Log4j configured, will be reconfigured in aprox. 5 sec");
config.setLastModified(System.currentTimeMillis());
for (int i = 0; i < 10; i++) {
Thread.sleep(1000);
logger.info("Log4j waiting for reconfiguration");
}
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)