[
https://issues.apache.org/jira/browse/LOG4J2-1420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15325171#comment-15325171
]
Ralph Goers commented on LOG4J2-1420:
-------------------------------------
Actually, the logic worked the way it did previously because FileManager didn't
expose a rollover method. Now that it does it simplifies the logic of
performing a rollover.
It looks to me that RollingRandomAccessFileManager needs a number of changes in
addition to fixing the NPE as I believe it will still write headers and footers
when it shouldn't.
> 2.6.1 - NPE due to OnStartupTriggeringPolicy changes
> ----------------------------------------------------
>
> Key: LOG4J2-1420
> URL: https://issues.apache.org/jira/browse/LOG4J2-1420
> Project: Log4j 2
> Issue Type: Bug
> Affects Versions: 2.6.1
> Reporter: Leon Finker
>
> Hi,
> Noticed an NPE with one of our configurations with 2.6.1 (doesn't happen on
> previous versions). Looks like it's due to changes for LOG4J2-1405. Looks
> like the file size in RollingFileManager constructor is set before the
> randomAccessFile in RollingRandomAccessFileManager ctor. And the actual
> policy triggering happens in RollingFileManager before the randomAccessFile
> is assigned:triggeringPolicy.initialize(this); I guess that's why there was
> somewhat an elaborate logic in previous version of OnStartupTriggeringPolicy
> and the actual rollover was decided in isTriggeringEvent.
> The NPE always happens with OnStartupTriggeringPolicy and if previous file is
> not empty.
> {noformat}
> 2016-06-09 13:38:57,060 main ERROR Unable to invoke factory method in class
> class org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender
> for element RollingRandomAccessFile.
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at
> org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:132)
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:918)
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:858)
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:850)
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:479)
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:219)
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:231)
> at
> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:491)
> at
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:561)
> at
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:577)
> at
> org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:212)
> at
> org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:75)
> at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:152)
> at
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
> at
> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:103)
> at
> org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)
> at
> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
> at
> org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
> at
> com.tradingscreen.gemfire.server.CacheServer.<clinit>(CacheServer.java:46)
> Caused by: java.lang.NullPointerException
> at
> org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.close(RollingRandomAccessFileManager.java:128)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:211)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:142)
> at
> org.apache.logging.log4j.core.appender.rolling.OnStartupTriggeringPolicy.initialize(OnStartupTriggeringPolicy.java:43)
> at
> org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy.initialize(CompositeTriggeringPolicy.java:49)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.<init>(RollingFileManager.java:77)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.<init>(RollingRandomAccessFileManager.java:50)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory.createManager(RollingRandomAccessFileManager.java:183)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory.createManager(RollingRandomAccessFileManager.java:147)
> at
> org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:73)
> at
> org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:81)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.getRollingRandomAccessFileManager(RollingRandomAccessFileManager.java:80)
> at
> org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.createAppender(RollingRandomAccessFileAppender.java:207)
> ... 26 more
> 2016-06-09 13:38:57,064 main ERROR Null object returned for
> RollingRandomAccessFile in Appenders.
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]