[logback-dev] [JIRA] Resolved: (LBCORE-61) TimeBasedRollingPolicy can not be used with any other triggering policies

Ceki Gulcu (JIRA) noreply-jira at qos.ch
Fri Aug 7 23:14:10 CEST 2009

     [ http://jira.qos.ch/browse/LBCORE-61?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ceki Gulcu resolved LBCORE-61.

    Fix Version/s: 0.9.17
       Resolution: Fixed

The TimeBasedTriggeringPolicy has been heavily refactored. It is now possible to trigger rolling by time as well as by

> TimeBasedRollingPolicy can not be used with any other triggering policies
> -------------------------------------------------------------------------
>                 Key: LBCORE-61
>                 URL: http://jira.qos.ch/browse/LBCORE-61
>             Project: logback-core
>          Issue Type: Bug
>            Reporter: Szel Zoltan
>            Assignee: Ceki Gulcu
>            Priority: Critical
>             Fix For: 0.9.17
> If someone would like to have a time based rolling policy with a size based triggering policy, than the user will get a NullPointerException,:
>  at ch.qos.logback.core.rolling.helper.Compress.GZCompress(Compress.java:130)
> 	at ch.qos.logback.core.rolling.TimeBasedRollingPolicy.rollover(TimeBasedRollingPolicy.java:142)
> 	at ch.qos.logback.core.rolling.RollingFileAppender.rollover(RollingFileAppender.java:91)
> 	at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:116)
> 	at ch.qos.logback.core.WriterAppender.append(WriterAppender.java:124)
> 	at ch.qos.logback.core.AppenderBase.doAppend(AppenderBase.java:81)
> 	at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
> 	at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:282)
> 	at ch.qos.logback.classic.Logger.callAppenders(Logger.java:266)
> 	at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:487)
> 	at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:479)
> The cause of this issue is the isTriggeringEvent method in the TimeBasedRollingPolicy which has a side effect, namely it prepares the file name of the file which is about to rotate. If someone uses a triggering policy other than the same TimeBasedRollingPolicy, than the isTriggeringEvent method will not be called, hence the elapsedPeriodFileName will be null, hence a null pointer exception will be thrown in the start of the compression or while renaming.
> Please modify the isTriggeringEvent to not have this side effect + the rollover logic to capture the time information from the current event.
> Thanks,
> Zoltan

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the logback-dev mailing list