Bug 31003

Summary: RollingFileAppender, if removed can cause null pointer exceptions
Product: Log4j - Now in Jira Reporter: Elias Ross <eross>
Component: AppenderAssignee: log4j-dev <log4j-dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P3    
Version: 1.2   
Target Milestone: ---   
Hardware: Other   
OS: other   

Description Elias Ross 2004-09-01 20:07:22 UTC
Steps to reproduce:

    Layout layout = new PatternLayout(this.logfileLayout);
    RollingFileAppender rfa = new RollingFileAppender(layout, filename, true);
    Logger.getRootLogger().addAppender(rfa);
    Logger.getRootLogger().removeAllAppenders();
    rfa.rollOver();

Results:

    [junit] java.lang.NullPointerException
    [junit]     at
org.apache.log4j.RollingFileAppender.rollOver(RollingFileAppender.java:112)

Cause:

cw is null:

src/java/org/apache/log4j/RollingFileAppender.java

  public // synchronization not necessary since doAppend is alreasy synched
  void rollOver() {
    File target;
    File file;
                                                                               
                                                                               
    LogLog.debug("rolling over count=" + ((CountingQuietWriter) qw).getCount());
    LogLog.debug("maxBackupIndex="+maxBackupIndex);
                                                                               
                                                                               

Suggestion:

Either do nothing if the appender is closed or throw a better exception.
Comment 1 Curt Arnold 2006-08-01 19:13:47 UTC
Committed rev 427681.