[
https://issues.apache.org/jira/browse/LOG4J2-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17198189#comment-17198189
]
Geng Yuanzhe edited comment on LOG4J2-2918 at 9/18/20, 8:47 AM:
----------------------------------------------------------------
I've test your case, and you should just remove the code
*Configurator.reconfigure(config);*
Because when reconfigure in log4j2, the config is first set to the new one, and
then stop the prev one. In your case, the *prev one is the new one*. So this
config is stopped, which will stop the Disruptor and set it to null. Then when
you try to log with the logger, the NPE is thrown.
Maybe the method reconfigure() should do something to protect this case. But in
your case, just delete the *Configurator.reconfigure(config)*, and everything
will be ok.
was (Author: gengyuanzhe):
I've test your case, and you should just remove the code
*Configurator.reconfigure(config);*
Because when reconfigure of log4j2, the config is first set to the new one, and
then stop the prev one. In your case, the *prev one is the new one*. So this
config is stopped, which will stop the Disruptor and set it to null. Then when
you try to log with the logger, the NPE is thrown.
Maybe the method reconfigure() should do something to protect this case. But in
your case, just delete the *Configurator.reconfigure(config)*, and everything
will be ok.
> NPE on reconfigure method call with async configuration
> -------------------------------------------------------
>
> Key: LOG4J2-2918
> URL: https://issues.apache.org/jira/browse/LOG4J2-2918
> Project: Log4j 2
> Issue Type: Bug
> Affects Versions: 2.13.3
> Reporter: Dennys Fredericci
> Priority: Major
>
> I am getting the error below trying to reconfigure log4j programmatically.
>
> {code:java}
> 2020-08-24 10:10:18,163 main ERROR Could not register mbeans
> java.lang.NullPointerException at
> org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor.createRingBufferAdmin(AsyncLoggerConfigDisruptor.java:417)
> at
> org.apache.logging.log4j.core.async.AsyncLoggerConfig.createRingBufferAdmin(AsyncLoggerConfig.java:199)
> at
> org.apache.logging.log4j.core.jmx.Server.registerLoggerConfigs(Server.java:366)
> at
> org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:186)
> at
> org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:141)
> at
> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:629)
> at
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:712)
> at
> org.apache.logging.log4j.core.config.Configurator.reconfigure(Configurator.java:239)
> at br.com.fredericci.Main.main(Main.java:28)
> {code}
>
> Seems the same or similar problem described here:
> https://issues.apache.org/jira/browse/LOG4J2-807
> Here is the project which reproduces this issue:
> [https://github.com/dennysfredericci/log4j2-filter-spike]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)