[
https://issues.apache.org/jira/browse/LOG4J2-799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14115249#comment-14115249
]
Gary Gregory edited comment on LOG4J2-799 at 8/29/14 1:52 PM:
--------------------------------------------------------------
I committed a fix:
The private method ThrowableProxy.formatEntry(StackTraceElement,
ExtendedStackTraceElement, StringBuilder) is now
formatEntry(ExtendedStackTraceElement, StringBuilder) because the
StackTraceElement was not used. Also, it is possible that calling this method
could cause an NPE while a call site tried to address a null StackTraceElement
from ThrowableProxy.getExtendedStackTrace(ThrowableProxy.java:232). This is
what seems to happen in the stack strace for [LOG4J2-799] which matches up with
2.0-rc1.
To pick up this fix, you will need to download Log4j sources from Git and build.
The Git repo is here https://git-wip-us.apache.org/repos/asf/logging-log4j2
The Subversion repo is read-only and no longer used for development.
Please verify and close or comment.
was (Author: garydgregory):
I committed a fix:
The private method ThrowableProxy.formatEntry(StackTraceElement,
ExtendedStackTraceElement, StringBuilder) is now
formatEntry(ExtendedStackTraceElement, StringBuilder) because the
StackTraceElement was not used. Also, it is possible that calling this method
could cause an NPE while a call site tried to address a null StackTraceElement
from ThrowableProxy.getExtendedStackTrace(ThrowableProxy.java:232). This is
what seems to happen in the stack strace for [LOG4J2-799] which matches up with
2.0-rc1.
To pick up this fix, you will need to download Log4j sources from Git and build.
The Git repo is here https://git-wip-us.apache.org/repos/asf/logging-log4j2
The Subversion repo is read-only and no longer used for development.
> Log4j 2 throws ArrayIndexOutOfBoundsException
> ---------------------------------------------
>
> Key: LOG4J2-799
> URL: https://issues.apache.org/jira/browse/LOG4J2-799
> Project: Log4j 2
> Issue Type: Bug
> Affects Versions: 2.0-rc1, 2.0-rc2, 2.0.2
> Reporter: Nikita Koval
> Priority: Critical
> Attachments: Log4j-799.diff
>
>
> Sometimes, logging throws java.lang.ArrayIndexOutOfBoundsException:
> {noformat}
> 2014-05-23 01:01:37,019 ERROR An exception occurred processing Appender Err
> java.lang.ArrayIndexOutOfBoundsException: 6
> at
> org.apache.logging.log4j.core.impl.ThrowableProxy.formatElements(ThrowableProxy.java:269)
> at
> org.apache.logging.log4j.core.impl.ThrowableProxy.getExtendedStackTrace(ThrowableProxy.java:232)
> at
> org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.java:72)
> at
> org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
> at
> org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:172)
> at
> org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:52)
> at
> org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:45)
> at
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:118)
> at
> org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:85)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
> at
> org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.callAppenders(AsyncAppender.java:276)
> at
> org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.run(AsyncAppender.java:239)
> {noformat}
> Here is configuration:
> {code}
> <Configuration status="warn">
> <Appenders>
> <Async name="Async" bufferSize="2048" blocking="${BLOCKING_LOG}">
> <appender-ref ref="A1"/>
> <appender-ref ref="Err"/>
> </Async>
> <Async name="Async-profiler" bufferSize="2048" blocking="${BLOCKING_LOG}">
> <appender-ref ref="Profiler"/>
> </Async>
> <RollingFile name="A1" fileName="${GFT_VAR}/log/${target}.log"
> filePattern="${GFT_VAR}/log/${target}.log.%i">
> <PatternLayout pattern="[%d] [%t] %-5p %c - %m%n"/>
> <DefaultRolloverStrategy max="3"/>
> <Policies>
> <SizeBasedTriggeringPolicy size="50Mb"/>
> </Policies>
> </RollingFile>
> <RollingFile name="Err" fileName="${GFT_VAR}/log/${target}.err"
> filePattern="${GFT_VAR}/log/${target}.err.%i">
> <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
> <PatternLayout pattern="[%d] [%t] %-5p %c - %m%n"/>
> <DefaultRolloverStrategy max="2"/>
> <Policies>
> <SizeBasedTriggeringPolicy size="10MB"/>
> </Policies>
> </RollingFile>
> <RollingFile name="Profiler" fileName="${GFT_VAR}/log/${target}.stat"
> filePattern="${GFT_VAR}/log/${target}.stat.%i">
> <PatternLayout pattern="[%d] [%t] %-5p %c - %m%n"/>
> <DefaultRolloverStrategy max="3"/>
> <Policies>
> <SizeBasedTriggeringPolicy size="10MB"/>
> </Policies>
> </RollingFile>
> </Appenders>
> <Loggers>
> <Root level="debug">
> <AppenderRef ref="Async"/>
> </Root>
> <Logger name="net.sf" level="info">
> <AppenderRef ref="Async"/>
> </Logger>
> <Logger name="org.springframework.jdbc.core.JdbcTemplate" level="info">
> <AppenderRef ref="Async"/>
> </Logger>
> <Logger name="gft.service.stats.PoolableMetrics" additivity="false"
> level="info">
> <AppenderRef ref="Async"/>
> </Logger>
> <Logger name="gft.util.profiling.Profiler" additivity="false">
> <AppenderRef ref="Async-profiler"/>
> </Logger>
> </Loggers>
> </Configuration>
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]