public class org.apache.catalina.valves.AccessLogValve extends org.apache.catalina.valves.AbstractAccessLogValve
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.valves.AccessLogValve
  super_class: org.apache.catalina.valves.AbstractAccessLogValve
{
  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private volatile java.lang.String dateStamp;
    descriptor: Ljava/lang/String;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private java.lang.String directory;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  protected volatile java.lang.String prefix;
    descriptor: Ljava/lang/String;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected boolean rotatable;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean renameOnRotate;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  private boolean buffered;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  protected volatile java.lang.String suffix;
    descriptor: Ljava/lang/String;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected java.io.PrintWriter writer;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0004) ACC_PROTECTED

  protected java.text.SimpleDateFormat fileDateFormatter;
    descriptor: Ljava/text/SimpleDateFormat;
    flags: (0x0004) ACC_PROTECTED

  protected java.io.File currentLogFile;
    descriptor: Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED

  private volatile long rotationLastChecked;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private boolean checkExists;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  protected java.lang.String fileDateFormat;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected volatile java.lang.String encoding;
    descriptor: Ljava/lang/String;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  private int maxDays;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private volatile boolean checkForOldLogs;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 65
            ldc Lorg/apache/catalina/valves/AccessLogValve;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 69
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve.<init>:()V
         1: .line 79
            aload 0 /* this */
            ldc ""
            putfield org.apache.catalina.valves.AccessLogValve.dateStamp:Ljava/lang/String;
         2: .line 85
            aload 0 /* this */
            ldc "logs"
            putfield org.apache.catalina.valves.AccessLogValve.directory:Ljava/lang/String;
         3: .line 90
            aload 0 /* this */
            ldc "access_log"
            putfield org.apache.catalina.valves.AccessLogValve.prefix:Ljava/lang/String;
         4: .line 96
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.valves.AccessLogValve.rotatable:Z
         5: .line 102
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.AccessLogValve.renameOnRotate:Z
         6: .line 108
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.valves.AccessLogValve.buffered:Z
         7: .line 114
            aload 0 /* this */
            ldc ""
            putfield org.apache.catalina.valves.AccessLogValve.suffix:Ljava/lang/String;
         8: .line 120
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
         9: .line 127
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
        10: .line 134
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
        11: .line 139
            aload 0 /* this */
            lconst_0
            putfield org.apache.catalina.valves.AccessLogValve.rotationLastChecked:J
        12: .line 145
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.AccessLogValve.checkExists:Z
        13: .line 150
            aload 0 /* this */
            ldc ".yyyy-MM-dd"
            putfield org.apache.catalina.valves.AccessLogValve.fileDateFormat:Ljava/lang/String;
        14: .line 157
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.encoding:Ljava/lang/String;
        15: .line 163
            aload 0 /* this */
            iconst_m1
            putfield org.apache.catalina.valves.AccessLogValve.maxDays:I
        16: .line 164
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.AccessLogValve.checkForOldLogs:Z
        17: .line 70
            return
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public int getMaxDays();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 170
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.maxDays:I
            ireturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setMaxDays(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // int maxDays
         0: .line 175
            aload 0 /* this */
            iload 1 /* maxDays */
            putfield org.apache.catalina.valves.AccessLogValve.maxDays:I
         1: .line 176
            return
        end local 1 // int maxDays
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/catalina/valves/AccessLogValve;
            0    2     1  maxDays  I
    MethodParameters:
         Name  Flags
      maxDays  

  public java.lang.String getDirectory();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 183
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.directory:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setDirectory(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // java.lang.String directory
         0: .line 193
            aload 0 /* this */
            aload 1 /* directory */
            putfield org.apache.catalina.valves.AccessLogValve.directory:Ljava/lang/String;
         1: .line 194
            return
        end local 1 // java.lang.String directory
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/catalina/valves/AccessLogValve;
            0    2     1  directory  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      directory  

  public boolean isCheckExists();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 202
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.checkExists:Z
            ireturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setCheckExists(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // boolean checkExists
         0: .line 214
            aload 0 /* this */
            iload 1 /* checkExists */
            putfield org.apache.catalina.valves.AccessLogValve.checkExists:Z
         1: .line 216
            return
        end local 1 // boolean checkExists
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/catalina/valves/AccessLogValve;
            0    2     1  checkExists  Z
    MethodParameters:
             Name  Flags
      checkExists  

  public java.lang.String getPrefix();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 223
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.prefix:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setPrefix(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // java.lang.String prefix
         0: .line 233
            aload 0 /* this */
            aload 1 /* prefix */
            putfield org.apache.catalina.valves.AccessLogValve.prefix:Ljava/lang/String;
         1: .line 234
            return
        end local 1 // java.lang.String prefix
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/catalina/valves/AccessLogValve;
            0    2     1  prefix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prefix  

  public boolean isRotatable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 243
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.rotatable:Z
            ireturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setRotatable(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // boolean rotatable
         0: .line 253
            aload 0 /* this */
            iload 1 /* rotatable */
            putfield org.apache.catalina.valves.AccessLogValve.rotatable:Z
         1: .line 254
            return
        end local 1 // boolean rotatable
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/catalina/valves/AccessLogValve;
            0    2     1  rotatable  Z
    MethodParameters:
           Name  Flags
      rotatable  

  public boolean isRenameOnRotate();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 264
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.renameOnRotate:Z
            ireturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setRenameOnRotate(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // boolean renameOnRotate
         0: .line 275
            aload 0 /* this */
            iload 1 /* renameOnRotate */
            putfield org.apache.catalina.valves.AccessLogValve.renameOnRotate:Z
         1: .line 276
            return
        end local 1 // boolean renameOnRotate
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/catalina/valves/AccessLogValve;
            0    2     1  renameOnRotate  Z
    MethodParameters:
                Name  Flags
      renameOnRotate  

  public boolean isBuffered();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 284
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.buffered:Z
            ireturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setBuffered(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // boolean buffered
         0: .line 294
            aload 0 /* this */
            iload 1 /* buffered */
            putfield org.apache.catalina.valves.AccessLogValve.buffered:Z
         1: .line 295
            return
        end local 1 // boolean buffered
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/catalina/valves/AccessLogValve;
            0    2     1  buffered  Z
    MethodParameters:
          Name  Flags
      buffered  

  public java.lang.String getSuffix();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 302
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.suffix:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setSuffix(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // java.lang.String suffix
         0: .line 312
            aload 0 /* this */
            aload 1 /* suffix */
            putfield org.apache.catalina.valves.AccessLogValve.suffix:Ljava/lang/String;
         1: .line 313
            return
        end local 1 // java.lang.String suffix
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/catalina/valves/AccessLogValve;
            0    2     1  suffix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      suffix  

  public java.lang.String getFileDateFormat();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 319
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.fileDateFormat:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setFileDateFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // java.lang.String fileDateFormat
         0: .line 329
            aload 1 /* fileDateFormat */
            ifnonnull 3
         1: .line 330
            ldc ""
            astore 2 /* newFormat */
        start local 2 // java.lang.String newFormat
         2: .line 331
            goto 4
        end local 2 // java.lang.String newFormat
         3: .line 332
      StackMap locals:
      StackMap stack:
            aload 1 /* fileDateFormat */
            astore 2 /* newFormat */
        start local 2 // java.lang.String newFormat
         4: .line 334
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* newFormat */
            putfield org.apache.catalina.valves.AccessLogValve.fileDateFormat:Ljava/lang/String;
         5: .line 336
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         6: .line 337
            aload 0 /* this */
            new java.text.SimpleDateFormat
            dup
            aload 2 /* newFormat */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            putfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
         7: .line 338
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
            invokestatic java.util.TimeZone.getDefault:()Ljava/util/TimeZone;
            invokevirtual java.text.SimpleDateFormat.setTimeZone:(Ljava/util/TimeZone;)V
         8: .line 336
            aload 3
            monitorexit
         9: goto 12
      StackMap locals: org.apache.catalina.valves.AccessLogValve java.lang.String java.lang.String org.apache.catalina.valves.AccessLogValve
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        12: .line 340
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String newFormat
        end local 1 // java.lang.String fileDateFormat
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/apache/catalina/valves/AccessLogValve;
            0   13     1  fileDateFormat  Ljava/lang/String;
            2    3     2       newFormat  Ljava/lang/String;
            4   13     2       newFormat  Ljava/lang/String;
      Exception table:
        from    to  target  type
           6     9      10  any
          10    11      10  any
    MethodParameters:
                Name  Flags
      fileDateFormat  

  public java.lang.String getEncoding();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 349
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.encoding:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AccessLogValve;

  public void setEncoding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // java.lang.String encoding
         0: .line 358
            aload 1 /* encoding */
            ifnull 3
            aload 1 /* encoding */
            invokevirtual java.lang.String.length:()I
            ifle 3
         1: .line 359
            aload 0 /* this */
            aload 1 /* encoding */
            putfield org.apache.catalina.valves.AccessLogValve.encoding:Ljava/lang/String;
         2: .line 360
            goto 4
         3: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.encoding:Ljava/lang/String;
         4: .line 363
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String encoding
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/catalina/valves/AccessLogValve;
            0    5     1  encoding  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      encoding  

  public synchronized void backgroundProcess();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=14, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 374
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 3
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.getEnabled:()Z
            ifeq 3
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
            ifnull 3
         1: .line 375
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.buffered:Z
            ifeq 3
         2: .line 376
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
         3: .line 379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.maxDays:I
            istore 1 /* maxDays */
        start local 1 // int maxDays
         4: .line 380
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.prefix:Ljava/lang/String;
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         5: .line 381
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.suffix:Ljava/lang/String;
            astore 3 /* suffix */
        start local 3 // java.lang.String suffix
         6: .line 383
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.rotatable:Z
            ifeq 34
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.checkForOldLogs:Z
            ifeq 34
            iload 1 /* maxDays */
            ifle 34
         7: .line 385
            invokestatic java.lang.System.currentTimeMillis:()J
            iload 1 /* maxDays */
            i2l
            ldc 24
            lmul
            ldc 60
            lmul
            ldc 60
            lmul
            ldc 1000
            lmul
            lsub
         8: .line 384
            lstore 4 /* deleteIfLastModifiedBefore */
        start local 4 // long deleteIfLastModifiedBefore
         9: .line 386
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.getDirectoryFile:()Ljava/io/File;
            astore 6 /* dir */
        start local 6 // java.io.File dir
        10: .line 387
            aload 6 /* dir */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 33
        11: .line 388
            aload 6 /* dir */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            astore 7 /* oldAccessLogs */
        start local 7 // java.lang.String[] oldAccessLogs
        12: .line 390
            aload 7 /* oldAccessLogs */
            ifnull 33
        13: .line 391
            aload 7 /* oldAccessLogs */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 32
      StackMap locals: org.apache.catalina.valves.AccessLogValve int java.lang.String java.lang.String long java.io.File java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        14: aload 11
            iload 9
            aaload
            astore 8 /* oldAccessLog */
        start local 8 // java.lang.String oldAccessLog
        15: .line 392
            iconst_0
            istore 12 /* match */
        start local 12 // boolean match
        16: .line 394
            aload 2 /* prefix */
            ifnull 20
            aload 2 /* prefix */
            invokevirtual java.lang.String.length:()I
            ifle 20
        17: .line 395
            aload 8 /* oldAccessLog */
            aload 2 /* prefix */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 19
        18: .line 396
            goto 31
        19: .line 398
      StackMap locals: org.apache.catalina.valves.AccessLogValve int java.lang.String java.lang.String long java.io.File java.lang.String[] java.lang.String int int java.lang.String[] int
      StackMap stack:
            iconst_1
            istore 12 /* match */
        20: .line 401
      StackMap locals:
      StackMap stack:
            aload 3 /* suffix */
            ifnull 24
            aload 3 /* suffix */
            invokevirtual java.lang.String.length:()I
            ifle 24
        21: .line 402
            aload 8 /* oldAccessLog */
            aload 3 /* suffix */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 23
        22: .line 403
            goto 31
        23: .line 405
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 12 /* match */
        24: .line 408
      StackMap locals:
      StackMap stack:
            iload 12 /* match */
            ifeq 31
        25: .line 409
            new java.io.File
            dup
            aload 6 /* dir */
            aload 8 /* oldAccessLog */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 13 /* file */
        start local 13 // java.io.File file
        26: .line 410
            aload 13 /* file */
            invokevirtual java.io.File.isFile:()Z
            ifeq 31
            aload 13 /* file */
            invokevirtual java.io.File.lastModified:()J
            lload 4 /* deleteIfLastModifiedBefore */
            lcmp
            ifge 31
        27: .line 411
            aload 13 /* file */
            invokevirtual java.io.File.delete:()Z
            ifne 31
        28: .line 412
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
        29: .line 413
            ldc "accessLogValve.deleteFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
        30: .line 412
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        end local 13 // java.io.File file
        end local 12 // boolean match
        end local 8 // java.lang.String oldAccessLog
        31: .line 391
      StackMap locals: org.apache.catalina.valves.AccessLogValve int java.lang.String java.lang.String long java.io.File java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        32: iload 9
            iload 10
            if_icmplt 14
        end local 7 // java.lang.String[] oldAccessLogs
        33: .line 420
      StackMap locals: org.apache.catalina.valves.AccessLogValve int java.lang.String java.lang.String long java.io.File
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.AccessLogValve.checkForOldLogs:Z
        end local 6 // java.io.File dir
        end local 4 // long deleteIfLastModifiedBefore
        34: .line 422
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String suffix
        end local 2 // java.lang.String prefix
        end local 1 // int maxDays
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   35     0                        this  Lorg/apache/catalina/valves/AccessLogValve;
            4   35     1                     maxDays  I
            5   35     2                      prefix  Ljava/lang/String;
            6   35     3                      suffix  Ljava/lang/String;
            9   34     4  deleteIfLastModifiedBefore  J
           10   34     6                         dir  Ljava/io/File;
           12   33     7               oldAccessLogs  [Ljava/lang/String;
           15   31     8                oldAccessLog  Ljava/lang/String;
           16   31    12                       match  Z
           26   31    13                        file  Ljava/io/File;

  public void rotate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 428
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.rotatable:Z
            ifeq 15
         1: .line 430
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 1 /* systime */
        start local 1 // long systime
         2: .line 431
            lload 1 /* systime */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.rotationLastChecked:J
            lsub
            ldc 1000
            lcmp
            ifle 15
         3: .line 432
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         4: .line 433
            lload 1 /* systime */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.rotationLastChecked:J
            lsub
            ldc 1000
            lcmp
            ifle 11
         5: .line 434
            aload 0 /* this */
            lload 1 /* systime */
            putfield org.apache.catalina.valves.AccessLogValve.rotationLastChecked:J
         6: .line 438
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
            new java.util.Date
            dup
            lload 1 /* systime */
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.text.SimpleDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            astore 4 /* tsDate */
        start local 4 // java.lang.String tsDate
         7: .line 441
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.dateStamp:Ljava/lang/String;
            aload 4 /* tsDate */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
         8: .line 442
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.catalina.valves.AccessLogValve.close:(Z)V
         9: .line 443
            aload 0 /* this */
            aload 4 /* tsDate */
            putfield org.apache.catalina.valves.AccessLogValve.dateStamp:Ljava/lang/String;
        10: .line 444
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.open:()V
        end local 4 // java.lang.String tsDate
        11: .line 432
      StackMap locals: long org.apache.catalina.valves.AccessLogValve
      StackMap stack:
            aload 3
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        end local 1 // long systime
        15: .line 450
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/apache/catalina/valves/AccessLogValve;
            2   15     1  systime  J
            7   11     4   tsDate  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4    12      13  any
          13    14      13  any

  public synchronized boolean rotate(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // java.lang.String newFileName
         0: .line 462
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
            ifnull 13
         1: .line 463
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
            astore 2 /* holder */
        start local 2 // java.io.File holder
         2: .line 464
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.valves.AccessLogValve.close:(Z)V
         3: .line 466
            aload 2 /* holder */
            new java.io.File
            dup
            aload 1 /* newFileName */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            pop
         4: .line 467
            goto 8
      StackMap locals: org.apache.catalina.valves.AccessLogValve java.lang.String java.io.File
      StackMap stack: java.lang.Throwable
         5: astore 3 /* e */
        start local 3 // java.lang.Throwable e
         6: .line 468
            aload 3 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
         7: .line 469
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.rotateFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable e
         8: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
         9: .line 474
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            invokespecial java.util.Date.<init>:(J)V
        10: .line 473
            invokevirtual java.text.SimpleDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            putfield org.apache.catalina.valves.AccessLogValve.dateStamp:Ljava/lang/String;
        11: .line 476
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.open:()V
        12: .line 477
            iconst_1
            ireturn
        end local 2 // java.io.File holder
        13: .line 479
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.String newFileName
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/apache/catalina/valves/AccessLogValve;
            0   14     1  newFileName  Ljava/lang/String;
            2   13     2       holder  Ljava/io/File;
            6    8     3            e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Throwable
    MethodParameters:
             Name  Flags
      newFileName  

  private java.io.File getDirectoryFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 488
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.directory:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* dir */
        start local 1 // java.io.File dir
         1: .line 489
            aload 1 /* dir */
            invokevirtual java.io.File.isAbsolute:()Z
            ifne 3
         2: .line 490
            new java.io.File
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.getContainer:()Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getCatalinaBase:()Ljava/io/File;
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.directory:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 1 /* dir */
         3: .line 492
      StackMap locals: java.io.File
      StackMap stack:
            aload 1 /* dir */
            areturn
        end local 1 // java.io.File dir
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/valves/AccessLogValve;
            1    4     1   dir  Ljava/io/File;

  private java.io.File getLogFile(boolean);
    descriptor: (Z)Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // boolean useDateStamp
         0: .line 506
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.getDirectoryFile:()Ljava/io/File;
            astore 2 /* dir */
        start local 2 // java.io.File dir
         1: .line 507
            aload 2 /* dir */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 3
            aload 2 /* dir */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 3
         2: .line 508
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.openDirFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* dir */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
         3: .line 513
      StackMap locals: java.io.File
      StackMap stack:
            iload 1 /* useDateStamp */
            ifeq 8
         4: .line 514
            new java.io.File
            dup
            aload 2 /* dir */
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.prefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.dateStamp:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 515
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.suffix:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 514
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* pathname */
        start local 3 // java.io.File pathname
         7: .line 516
            goto 9
        end local 3 // java.io.File pathname
         8: .line 517
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 2 /* dir */
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.prefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.suffix:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* pathname */
        start local 3 // java.io.File pathname
         9: .line 519
      StackMap locals: java.io.File
      StackMap stack:
            aload 3 /* pathname */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 4 /* parent */
        start local 4 // java.io.File parent
        10: .line 520
            aload 4 /* parent */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 12
            aload 4 /* parent */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 12
        11: .line 521
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.openDirFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* parent */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        12: .line 523
      StackMap locals: java.io.File
      StackMap stack:
            aload 3 /* pathname */
            areturn
        end local 4 // java.io.File parent
        end local 3 // java.io.File pathname
        end local 2 // java.io.File dir
        end local 1 // boolean useDateStamp
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/apache/catalina/valves/AccessLogValve;
            0   13     1  useDateStamp  Z
            1   13     2           dir  Ljava/io/File;
            7    8     3      pathname  Ljava/io/File;
            9   13     3      pathname  Ljava/io/File;
           10   13     4        parent  Ljava/io/File;
    MethodParameters:
              Name  Flags
      useDateStamp  

  private void restore();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 532
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.valves.AccessLogValve.getLogFile:(Z)Ljava/io/File;
            astore 1 /* newLogFile */
        start local 1 // java.io.File newLogFile
         1: .line 533
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.catalina.valves.AccessLogValve.getLogFile:(Z)Ljava/io/File;
            astore 2 /* rotatedLogFile */
        start local 2 // java.io.File rotatedLogFile
         2: .line 534
            aload 2 /* rotatedLogFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 10
            aload 1 /* newLogFile */
            invokevirtual java.io.File.exists:()Z
            ifne 10
         3: .line 535
            aload 2 /* rotatedLogFile */
            aload 1 /* newLogFile */
            invokevirtual java.io.File.equals:(Ljava/lang/Object;)Z
            ifne 10
         4: .line 537
            aload 2 /* rotatedLogFile */
            aload 1 /* newLogFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 10
         5: .line 538
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.renameFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* rotatedLogFile */
            aastore
            dup
            iconst_1
            aload 1 /* newLogFile */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
         6: .line 540
            goto 10
      StackMap locals: org.apache.catalina.valves.AccessLogValve java.io.File java.io.File
      StackMap stack: java.lang.Throwable
         7: astore 3 /* e */
        start local 3 // java.lang.Throwable e
         8: .line 541
            aload 3 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
         9: .line 542
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.renameFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* rotatedLogFile */
            aastore
            dup
            iconst_1
            aload 1 /* newLogFile */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable e
        10: .line 545
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.File rotatedLogFile
        end local 1 // java.io.File newLogFile
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/apache/catalina/valves/AccessLogValve;
            1   11     1      newLogFile  Ljava/io/File;
            2   11     2  rotatedLogFile  Ljava/io/File;
            8   10     3               e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     6       7  Class java.lang.Throwable

  private synchronized void close(boolean);
    descriptor: (Z)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // boolean rename
         0: .line 554
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
            ifnonnull 2
         1: .line 555
            return
         2: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
         3: .line 558
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.close:()V
         4: .line 559
            iload 1 /* rename */
            ifeq 15
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.renameOnRotate:Z
            ifeq 15
         5: .line 560
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.catalina.valves.AccessLogValve.getLogFile:(Z)Ljava/io/File;
            astore 2 /* newLogFile */
        start local 2 // java.io.File newLogFile
         6: .line 561
            aload 2 /* newLogFile */
            invokevirtual java.io.File.exists:()Z
            ifne 14
         7: .line 563
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
            aload 2 /* newLogFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 15
         8: .line 564
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.renameFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
            aastore
            dup
            iconst_1
            aload 2 /* newLogFile */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
         9: .line 566
            goto 15
      StackMap locals: org.apache.catalina.valves.AccessLogValve int java.io.File
      StackMap stack: java.lang.Throwable
        10: astore 3 /* e */
        start local 3 // java.lang.Throwable e
        11: .line 567
            aload 3 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        12: .line 568
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.renameFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
            aastore
            dup
            iconst_1
            aload 2 /* newLogFile */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable e
        13: .line 570
            goto 15
        14: .line 571
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.alreadyExists"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
            aastore
            dup
            iconst_1
            aload 2 /* newLogFile */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        end local 2 // java.io.File newLogFile
        15: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
        16: .line 575
            aload 0 /* this */
            ldc ""
            putfield org.apache.catalina.valves.AccessLogValve.dateStamp:Ljava/lang/String;
        17: .line 576
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
        18: .line 577
            return
        end local 1 // boolean rename
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lorg/apache/catalina/valves/AccessLogValve;
            0   19     1      rename  Z
            6   15     2  newLogFile  Ljava/io/File;
           11   13     3           e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           7     9      10  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      rename  

  public void log(java.io.CharArrayWriter);
    descriptor: (Ljava/io/CharArrayWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.apache.catalina.valves.AccessLogValve this
        start local 1 // java.io.CharArrayWriter message
         0: .line 589
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.rotate:()V
         1: .line 592
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.checkExists:Z
            ifeq 17
         2: .line 593
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 594
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
            ifnull 13
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
            invokevirtual java.io.File.exists:()Z
            ifne 13
         4: .line 596
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.valves.AccessLogValve.close:(Z)V
         5: .line 597
            goto 9
      StackMap locals: org.apache.catalina.valves.AccessLogValve java.io.CharArrayWriter org.apache.catalina.valves.AccessLogValve
      StackMap stack: java.lang.Throwable
         6: astore 3 /* e */
        start local 3 // java.lang.Throwable e
         7: .line 598
            aload 3 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
         8: .line 599
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.closeFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable e
         9: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
        10: .line 604
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            invokespecial java.util.Date.<init>:(J)V
        11: .line 603
            invokevirtual java.text.SimpleDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            putfield org.apache.catalina.valves.AccessLogValve.dateStamp:Ljava/lang/String;
        12: .line 606
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.open:()V
        13: .line 593
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 2
            monitorexit
        16: athrow
        17: .line 613
      StackMap locals:
      StackMap stack:
            aload 1 /* message */
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.io.CharArrayWriter.write:(Ljava/lang/String;)V
        18: .line 614
            aload 0 /* this */
            dup
            astore 2
            monitorenter
        19: .line 615
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
            ifnull 23
        20: .line 616
            aload 1 /* message */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
            invokevirtual java.io.CharArrayWriter.writeTo:(Ljava/io/Writer;)V
        21: .line 617
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.buffered:Z
            ifne 23
        22: .line 618
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
        23: .line 614
      StackMap locals: org.apache.catalina.valves.AccessLogValve
      StackMap stack:
            aload 2
            monitorexit
        24: goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: aload 2
            monitorexit
        26: athrow
        27: .line 622
      StackMap locals: org.apache.catalina.valves.AccessLogValve java.io.CharArrayWriter
      StackMap stack: java.io.IOException
            astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
        28: .line 623
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
        29: .line 624
            ldc "accessLogValve.writeFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* message */
            invokevirtual java.io.CharArrayWriter.toString:()Ljava/lang/String;
            aastore
        30: .line 623
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        31: .line 624
            aload 2 /* ioe */
        32: .line 623
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 2 // java.io.IOException ioe
        33: .line 626
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.CharArrayWriter message
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   34     0     this  Lorg/apache/catalina/valves/AccessLogValve;
            0   34     1  message  Ljava/io/CharArrayWriter;
            7    9     3        e  Ljava/lang/Throwable;
           28   33     2      ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Throwable
           3    14      15  any
          15    16      15  any
          19    24      25  any
          25    26      25  any
          17    27      27  Class java.io.IOException
    MethodParameters:
         Name  Flags
      message  

  protected synchronized void open();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 635
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.rotatable:Z
            ifeq 1
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.renameOnRotate:Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.apache.catalina.valves.AccessLogValve
         1: iconst_0
      StackMap locals: org.apache.catalina.valves.AccessLogValve
      StackMap stack: org.apache.catalina.valves.AccessLogValve int
         2: invokevirtual org.apache.catalina.valves.AccessLogValve.getLogFile:(Z)Ljava/io/File;
            astore 1 /* pathname */
        start local 1 // java.io.File pathname
         3: .line 637
            aconst_null
            astore 2 /* charset */
        start local 2 // java.nio.charset.Charset charset
         4: .line 638
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.encoding:Ljava/lang/String;
            ifnull 13
         5: .line 640
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.encoding:Ljava/lang/String;
            invokestatic org.apache.tomcat.util.buf.B2CConverter.getCharset:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 2 /* charset */
         6: .line 641
            goto 13
      StackMap locals: org.apache.catalina.valves.AccessLogValve java.io.File java.nio.charset.Charset
      StackMap stack: java.io.UnsupportedEncodingException
         7: astore 3 /* ex */
        start local 3 // java.io.UnsupportedEncodingException ex
         8: .line 642
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
         9: .line 643
            ldc "accessLogValve.unsupportedEncoding"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.encoding:Ljava/lang/String;
            aastore
        10: .line 642
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        11: .line 643
            aload 3 /* ex */
        12: .line 642
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.io.UnsupportedEncodingException ex
        13: .line 646
      StackMap locals:
      StackMap stack:
            aload 2 /* charset */
            ifnonnull 15
        14: .line 647
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            astore 2 /* charset */
        15: .line 651
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            new java.io.BufferedWriter
            dup
            new java.io.OutputStreamWriter
            dup
        16: .line 652
            new java.io.FileOutputStream
            dup
            aload 1 /* pathname */
            iconst_1
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;Z)V
            aload 2 /* charset */
            invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
            ldc 128000
            invokespecial java.io.BufferedWriter.<init>:(Ljava/io/Writer;I)V
        17: .line 653
            iconst_0
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;Z)V
        18: .line 651
            putfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
        19: .line 655
            aload 0 /* this */
            aload 1 /* pathname */
            putfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
        20: .line 656
            goto 25
      StackMap locals:
      StackMap stack: java.io.IOException
        21: astore 3 /* e */
        start local 3 // java.io.IOException e
        22: .line 657
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.writer:Ljava/io/PrintWriter;
        23: .line 658
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AccessLogValve.currentLogFile:Ljava/io/File;
        24: .line 659
            getstatic org.apache.catalina.valves.AccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.openFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* pathname */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.io.IOException e
        25: .line 664
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.valves.AccessLogValve.checkForOldLogs:Z
        26: .line 665
            return
        end local 2 // java.nio.charset.Charset charset
        end local 1 // java.io.File pathname
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lorg/apache/catalina/valves/AccessLogValve;
            3   27     1  pathname  Ljava/io/File;
            4   27     2   charset  Ljava/nio/charset/Charset;
            8   13     3        ex  Ljava/io/UnsupportedEncodingException;
           22   25     3         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.io.UnsupportedEncodingException
          15    20      21  Class java.io.IOException

  protected synchronized void startInternal();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 678
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.getFileDateFormat:()Ljava/lang/String;
            astore 1 /* format */
        start local 1 // java.lang.String format
         1: .line 679
            aload 0 /* this */
            new java.text.SimpleDateFormat
            dup
            aload 1 /* format */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            putfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
         2: .line 680
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
            invokestatic java.util.TimeZone.getDefault:()Ljava/util/TimeZone;
            invokevirtual java.text.SimpleDateFormat.setTimeZone:(Ljava/util/TimeZone;)V
         3: .line 681
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.fileDateFormatter:Ljava/text/SimpleDateFormat;
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.text.SimpleDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            putfield org.apache.catalina.valves.AccessLogValve.dateStamp:Ljava/lang/String;
         4: .line 682
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.rotatable:Z
            ifeq 6
            aload 0 /* this */
            getfield org.apache.catalina.valves.AccessLogValve.renameOnRotate:Z
            ifeq 6
         5: .line 683
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.restore:()V
         6: .line 685
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AccessLogValve.open:()V
         7: .line 687
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve.startInternal:()V
         8: .line 688
            return
        end local 1 // java.lang.String format
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/apache/catalina/valves/AccessLogValve;
            1    9     1  format  Ljava/lang/String;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected synchronized void stopInternal();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AccessLogValve this
         0: .line 701
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve.stopInternal:()V
         1: .line 702
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.valves.AccessLogValve.close:(Z)V
         2: .line 703
            return
        end local 0 // org.apache.catalina.valves.AccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/valves/AccessLogValve;
    Exceptions:
      throws org.apache.catalina.LifecycleException
}
SourceFile: "AccessLogValve.java"