logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Remko Popma (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (LOG4J2-807) Disruptor is null when configuration is reloaded (asyncRoot + monitorInterval)
Date Mon, 22 Sep 2014 15:42:34 GMT

     [ https://issues.apache.org/jira/browse/LOG4J2-807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Remko Popma resolved LOG4J2-807.
--------------------------------
    Resolution: Fixed

Fixed in master in commits 0f8acc5 and 23b48b3.
Please verify and close.

> 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
>            Assignee: Remko Popma
>             Fix For: 2.1
>
>         Attachments: async-root-reload - trace.log, async-root-reload-test.zip, async-root-reload.log
>
>
> 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.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message