[ 
https://issues.apache.org/jira/browse/LOG4J2-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17745958#comment-17745958
 ] 

Jeff Thomas commented on LOG4J2-1521:
-------------------------------------

Hi saw this problem from a different direction - when not defined in the log4j2 
XML file, the API for DefaultRolloverStrategy returns -1 for 
"getCompressionLevel".

This comes from the following line:
 
{noformat}
final int compressionLevel = Integers.parseInt(trimmedCompressionLevelStr, 
Deflater.DEFAULT_COMPRESSION);{noformat}
{noformat}
public static final int DEFAULT_COMPRESSION = -1;{noformat}
This conflicts with the documentation as well which says:
 
|compressionLevel|integer|Sets the compression level, 0-9, where 0 = none, 1 = 
best speed, through 9 = best compression. Only implemented for ZIP files.|
Here at least my assumption was that the default compression level would be 0.

> StringIndexOutOfBoundsException thrown when rolling logs
> --------------------------------------------------------
>
>                 Key: LOG4J2-1521
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1521
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.6.2
>         Environment: Windows 10 Pro 64-bit (10.0, Build 14393) 
> (14393.rs1_release.160715-1616)
> java version "1.8.0_73"
> Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
> Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
>            Reporter: Johno Crawford
>            Priority: Major
>
> When prototyping with log4j I ran into an issue with rolling log files.
> {noformat}
> 2016-08-16 08:26:25,304 main ERROR An exception occurred processing Appender 
> TABLE1-appender java.lang.StringIndexOutOfBoundsException: String index out 
> of range: -1
>       at 
> java.lang.AbstractStringBuilder.setCharAt(AbstractStringBuilder.java:380)
>       at java.lang.StringBuilder.setCharAt(StringBuilder.java:76)
>       at 
> org.apache.logging.log4j.core.util.datetime.FastDatePrinter$PaddedNumberField.appendTo(FastDatePrinter.java:895)
>       at 
> org.apache.logging.log4j.core.util.datetime.FastDatePrinter$PaddedNumberField.appendTo(FastDatePrinter.java:880)
>       at 
> org.apache.logging.log4j.core.util.datetime.FastDatePrinter.applyRules(FastDatePrinter.java:479)
>       at 
> org.apache.logging.log4j.core.util.datetime.FastDatePrinter.format(FastDatePrinter.java:454)
>       at 
> org.apache.logging.log4j.core.util.datetime.FastDatePrinter.format(FastDatePrinter.java:442)
>       at 
> org.apache.logging.log4j.core.util.datetime.FastDateFormat.format(FastDateFormat.java:427)
>       at 
> org.apache.logging.log4j.core.pattern.DatePatternConverter$PatternFormatter.formatToBuffer(DatePatternConverter.java:70)
>       at 
> org.apache.logging.log4j.core.pattern.DatePatternConverter.formatWithoutAllocation(DatePatternConverter.java:259)
>       at 
> org.apache.logging.log4j.core.pattern.DatePatternConverter.format(DatePatternConverter.java:251)
>       at 
> org.apache.logging.log4j.core.pattern.DatePatternConverter.format(DatePatternConverter.java:238)
>       at 
> org.apache.logging.log4j.core.pattern.DatePatternConverter.format(DatePatternConverter.java:290)
>       at 
> org.apache.logging.log4j.core.pattern.DatePatternConverter.format(DatePatternConverter.java:299)
>       at 
> org.apache.logging.log4j.core.appender.rolling.PatternProcessor.formatFileName(PatternProcessor.java:248)
>       at 
> org.apache.logging.log4j.core.appender.rolling.PatternProcessor.formatFileName(PatternProcessor.java:233)
>       at 
> org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.purgeAscending(DefaultRolloverStrategy.java:323)
>       at 
> org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.purge(DefaultRolloverStrategy.java:306)
>       at 
> org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.rollover(DefaultRolloverStrategy.java:524)
>       at 
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:220)
>       at 
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:155)
>       at 
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.checkRollover(RollingFileManager.java:150)
>       at 
> org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:85)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:155)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:128)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:119)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:390)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:375)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:359)
>       at 
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:349)
>       at 
> org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
>       at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:1988)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1960)
>       at 
> org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:1297)
>       at Main.main(Main.java:60)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to