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

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

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

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

  private static final int globalCacheSize;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 300

  private static final int localCacheSize;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 60

  private static final org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache globalDateCache;
    descriptor: Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.ThreadLocal<org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache> localDateCache;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache;>;

  private static final java.lang.ThreadLocal<java.util.Date> localDate;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/util/Date;>;

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

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

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

  protected java.util.Locale locale;
    descriptor: Ljava/util/Locale;
    flags: (0x0004) ACC_PROTECTED

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[] logElements;
    descriptor: [Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED

  protected org.apache.catalina.valves.AbstractAccessLogValve$CachedElement[] cachedElements;
    descriptor: [Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;
    flags: (0x0004) ACC_PROTECTED

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

  private org.apache.tomcat.util.collections.SynchronizedStack<java.io.CharArrayWriter> charArrayWriters;
    descriptor: Lorg/apache/tomcat/util/collections/SynchronizedStack;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/apache/tomcat/util/collections/SynchronizedStack<Ljava/io/CharArrayWriter;>;

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 152
            ldc Lorg/apache/catalina/valves/AbstractAccessLogValve;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.valves.AbstractAccessLogValve.log:Lorg/apache/juli/logging/Log;
         1: .line 405
            new org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache
            dup
            sipush 300
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            aconst_null
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache.<init>:(ILjava/util/Locale;Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache;)V
         2: .line 404
            putstatic org.apache.catalina.valves.AbstractAccessLogValve.globalDateCache:Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache;
         3: .line 411
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/apache/catalina/valves/AbstractAccessLogValve.lambda$0()Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache; (6)
                  ()Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache;
            invokestatic java.lang.ThreadLocal.withInitial:(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;
         4: .line 410
            putstatic org.apache.catalina.valves.AbstractAccessLogValve.localDateCache:Ljava/lang/ThreadLocal;
         5: .line 418
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/util/Date.<init>()V (8)
                  ()Ljava/util/Date;
            invokestatic java.lang.ThreadLocal.withInitial:(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;
            putstatic org.apache.catalina.valves.AbstractAccessLogValve.localDate:Ljava/lang/ThreadLocal;
            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.AbstractAccessLogValve this
         0: .line 170
            aload 0 /* this */
            iconst_1
            invokespecial org.apache.catalina.valves.ValveBase.<init>:(Z)V
         1: .line 179
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.valves.AbstractAccessLogValve.enabled:Z
         2: .line 184
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.AbstractAccessLogValve.ipv6Canonical:Z
         3: .line 189
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
         4: .line 424
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AbstractAccessLogValve.condition:Ljava/lang/String;
         5: .line 430
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AbstractAccessLogValve.conditionIf:Ljava/lang/String;
         6: .line 436
            aload 0 /* this */
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokevirtual java.util.Locale.toString:()Ljava/lang/String;
            putfield org.apache.catalina.valves.AbstractAccessLogValve.localeName:Ljava/lang/String;
         7: .line 443
            aload 0 /* this */
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            putfield org.apache.catalina.valves.AbstractAccessLogValve.locale:Ljava/util/Locale;
         8: .line 448
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AbstractAccessLogValve.logElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
         9: .line 454
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.AbstractAccessLogValve.cachedElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;
        10: .line 462
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.AbstractAccessLogValve.requestAttributesEnabled:Z
        11: .line 468
            aload 0 /* this */
        12: .line 469
            new org.apache.tomcat.util.collections.SynchronizedStack
            dup
            invokespecial org.apache.tomcat.util.collections.SynchronizedStack.<init>:()V
            putfield org.apache.catalina.valves.AbstractAccessLogValve.charArrayWriters:Lorg/apache/tomcat/util/collections/SynchronizedStack;
        13: .line 477
            aload 0 /* this */
            sipush 256
            putfield org.apache.catalina.valves.AbstractAccessLogValve.maxLogMessageBufferSize:I
        14: .line 482
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.AbstractAccessLogValve.tlsAttributeRequired:Z
        15: .line 171
            return
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/apache/catalina/valves/AbstractAccessLogValve;

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

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

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

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

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

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

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

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

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

  public void setPattern(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
        start local 1 // java.lang.String pattern
         0: .line 554
            aload 1 /* pattern */
            ifnonnull 3
         1: .line 555
            aload 0 /* this */
            ldc ""
            putfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
         2: .line 556
            goto 10
      StackMap locals:
      StackMap stack:
         3: aload 1 /* pattern */
            ldc "common"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 557
            aload 0 /* this */
            ldc "%h %l %u %t \"%r\" %s %b"
            putfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
         5: .line 558
            goto 10
      StackMap locals:
      StackMap stack:
         6: aload 1 /* pattern */
            ldc "combined"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 559
            aload 0 /* this */
            ldc "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\""
            putfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
         8: .line 560
            goto 10
         9: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* pattern */
            putfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
        10: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.createLogElements:()[Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            putfield org.apache.catalina.valves.AbstractAccessLogValve.logElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
        11: .line 564
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.logElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.createCachedElements:([Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;)[Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;
            putfield org.apache.catalina.valves.AbstractAccessLogValve.cachedElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;
        12: .line 565
            return
        end local 1 // java.lang.String pattern
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0   13     1  pattern  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      pattern  

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

  public void setCondition(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.AbstractAccessLogValve this
        start local 1 // java.lang.String condition
         0: .line 585
            aload 0 /* this */
            aload 1 /* condition */
            putfield org.apache.catalina.valves.AbstractAccessLogValve.condition:Ljava/lang/String;
         1: .line 586
            return
        end local 1 // java.lang.String condition
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0    2     1  condition  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      condition  

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

  public void setConditionUnless(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.AbstractAccessLogValve this
        start local 1 // java.lang.String condition
         0: .line 607
            aload 0 /* this */
            aload 1 /* condition */
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.setCondition:(Ljava/lang/String;)V
         1: .line 608
            return
        end local 1 // java.lang.String condition
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0    2     1  condition  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      condition  

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

  public void setConditionIf(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.AbstractAccessLogValve this
        start local 1 // java.lang.String condition
         0: .line 628
            aload 0 /* this */
            aload 1 /* condition */
            putfield org.apache.catalina.valves.AbstractAccessLogValve.conditionIf:Ljava/lang/String;
         1: .line 629
            return
        end local 1 // java.lang.String condition
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0    2     1  condition  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      condition  

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

  public void setLocale(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
        start local 1 // java.lang.String localeName
         0: .line 650
            aload 0 /* this */
            aload 1 /* localeName */
            putfield org.apache.catalina.valves.AbstractAccessLogValve.localeName:Ljava/lang/String;
         1: .line 651
            aload 0 /* this */
            aload 1 /* localeName */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.locale:Ljava/util/Locale;
            invokestatic org.apache.catalina.valves.AbstractAccessLogValve.findLocale:(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/Locale;
            putfield org.apache.catalina.valves.AbstractAccessLogValve.locale:Ljava/util/Locale;
         2: .line 652
            return
        end local 1 // java.lang.String localeName
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0    3     1  localeName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      localeName  

  public void invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response);
    descriptor: (Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // org.apache.catalina.connector.Response response
         0: .line 669
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.tlsAttributeRequired:Z
            ifeq 2
         1: .line 675
            aload 1 /* request */
            ldc "jakarta.servlet.request.X509Certificate"
            invokevirtual org.apache.catalina.connector.Request.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 677
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.cachedElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;
            ifnull 8
         3: .line 678
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.cachedElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response top int int org.apache.catalina.valves.AbstractAccessLogValve$CachedElement[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* element */
        start local 3 // org.apache.catalina.valves.AbstractAccessLogValve$CachedElement element
         5: .line 679
            aload 3 /* element */
            aload 1 /* request */
            invokeinterface org.apache.catalina.valves.AbstractAccessLogValve$CachedElement.cache:(Lorg/apache/catalina/connector/Request;)V
        end local 3 // org.apache.catalina.valves.AbstractAccessLogValve$CachedElement element
         6: .line 678
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 4
         8: .line 682
      StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.getNext:()Lorg/apache/catalina/Valve;
            aload 1 /* request */
            aload 2 /* response */
            invokeinterface org.apache.catalina.Valve.invoke:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
         9: .line 683
            return
        end local 2 // org.apache.catalina.connector.Response response
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0   10     1   request  Lorg/apache/catalina/connector/Request;
            0   10     2  response  Lorg/apache/catalina/connector/Response;
            5    6     3   element  Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;
    Exceptions:
      throws java.io.IOException, jakarta.servlet.ServletException
    MethodParameters:
          Name  Flags
      request   
      response  

  public void log(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, long);
    descriptor: (Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=4
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // org.apache.catalina.connector.Response response
        start local 3 // long time
         0: .line 688
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 5
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.getEnabled:()Z
            ifeq 5
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.logElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            ifnull 5
         1: .line 689
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.condition:Ljava/lang/String;
            ifnull 3
         2: .line 690
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljakarta/servlet/http/HttpServletRequest;
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.condition:Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 5
         3: .line 691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.conditionIf:Ljava/lang/String;
            ifnull 6
         4: .line 692
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljakarta/servlet/http/HttpServletRequest;
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.conditionIf:Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 6
         5: .line 693
      StackMap locals:
      StackMap stack:
            return
         6: .line 697
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokevirtual org.apache.coyote.Request.getStartTime:()J
            invokestatic org.apache.catalina.valves.AbstractAccessLogValve.getDate:(J)Ljava/util/Date;
            astore 5 /* date */
        start local 5 // java.util.Date date
         7: .line 699
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.charArrayWriters:Lorg/apache/tomcat/util/collections/SynchronizedStack;
            invokevirtual org.apache.tomcat.util.collections.SynchronizedStack.pop:()Ljava/lang/Object;
            checkcast java.io.CharArrayWriter
            astore 6 /* result */
        start local 6 // java.io.CharArrayWriter result
         8: .line 700
            aload 6 /* result */
            ifnonnull 10
         9: .line 701
            new java.io.CharArrayWriter
            dup
            sipush 128
            invokespecial java.io.CharArrayWriter.<init>:(I)V
            astore 6 /* result */
        10: .line 704
      StackMap locals: java.util.Date java.io.CharArrayWriter
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.logElements:[Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 14
      StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response long java.util.Date java.io.CharArrayWriter top int int org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[]
      StackMap stack:
        11: aload 10
            iload 8
            aaload
            astore 7 /* logElement */
        start local 7 // org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement logElement
        12: .line 705
            aload 7 /* logElement */
            aload 6 /* result */
            aload 5 /* date */
            aload 1 /* request */
            aload 2 /* response */
            lload 3 /* time */
            invokeinterface org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement.addElement:(Ljava/io/CharArrayWriter;Ljava/util/Date;Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;J)V
        end local 7 // org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement logElement
        13: .line 704
            iinc 8 1
      StackMap locals:
      StackMap stack:
        14: iload 8
            iload 9
            if_icmplt 11
        15: .line 708
            aload 0 /* this */
            aload 6 /* result */
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.log:(Ljava/io/CharArrayWriter;)V
        16: .line 710
            aload 6 /* result */
            invokevirtual java.io.CharArrayWriter.size:()I
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.maxLogMessageBufferSize:I
            if_icmpgt 19
        17: .line 711
            aload 6 /* result */
            invokevirtual java.io.CharArrayWriter.reset:()V
        18: .line 712
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.charArrayWriters:Lorg/apache/tomcat/util/collections/SynchronizedStack;
            aload 6 /* result */
            invokevirtual org.apache.tomcat.util.collections.SynchronizedStack.push:(Ljava/lang/Object;)Z
            pop
        19: .line 714
      StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response long java.util.Date java.io.CharArrayWriter
      StackMap stack:
            return
        end local 6 // java.io.CharArrayWriter result
        end local 5 // java.util.Date date
        end local 3 // long time
        end local 2 // org.apache.catalina.connector.Response response
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0   20     1     request  Lorg/apache/catalina/connector/Request;
            0   20     2    response  Lorg/apache/catalina/connector/Response;
            0   20     3        time  J
            7   20     5        date  Ljava/util/Date;
            8   20     6      result  Ljava/io/CharArrayWriter;
           12   13     7  logElement  Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    MethodParameters:
          Name  Flags
      request   
      response  
      time      

  protected abstract void log(java.io.CharArrayWriter);
    descriptor: (Ljava/io/CharArrayWriter;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      message  

  private static java.util.Date getDate(long);
    descriptor: (J)Ljava/util/Date;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // long systime
         0: .line 738
            getstatic org.apache.catalina.valves.AbstractAccessLogValve.localDate:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.util.Date
            astore 2 /* date */
        start local 2 // java.util.Date date
         1: .line 739
            aload 2 /* date */
            lload 0 /* systime */
            invokevirtual java.util.Date.setTime:(J)V
         2: .line 740
            aload 2 /* date */
            areturn
        end local 2 // java.util.Date date
        end local 0 // long systime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  systime  J
            1    3     2     date  Ljava/util/Date;
    MethodParameters:
         Name  Flags
      systime  

  protected static java.util.Locale findLocale(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Ljava/util/Locale;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.util.Locale fallback
         0: .line 751
            aload 0 /* name */
            ifnull 1
            aload 0 /* name */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 752
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            areturn
         2: .line 754
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Locale.getAvailableLocales:()[Ljava/util/Locale;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: java.lang.String java.util.Locale top int int java.util.Locale[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* l */
        start local 2 // java.util.Locale l
         4: .line 755
            aload 0 /* name */
            aload 2 /* l */
            invokevirtual java.util.Locale.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 756
            aload 2 /* l */
            areturn
        end local 2 // java.util.Locale l
         6: .line 754
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 3
         8: .line 760
            getstatic org.apache.catalina.valves.AbstractAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.AbstractAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "accessLogValve.invalidLocale"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* name */
            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 761
            aload 1 /* fallback */
            areturn
        end local 1 // java.util.Locale fallback
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      name  Ljava/lang/String;
            0   10     1  fallback  Ljava/util/Locale;
            4    6     2         l  Ljava/util/Locale;
    MethodParameters:
          Name  Flags
      name      
      fallback  

  protected synchronized void startInternal();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
         0: .line 775
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STARTING:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.setState:(Lorg/apache/catalina/LifecycleState;)V
         1: .line 776
            return
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
    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.AbstractAccessLogValve this
         0: .line 789
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STOPPING:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.setState:(Lorg/apache/catalina/LifecycleState;)V
         1: .line 790
            return
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[] createLogElements();
    descriptor: ()[Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
         0: .line 1657
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* list */
        start local 1 // java.util.List list
         1: .line 1658
            iconst_0
            istore 2 /* replace */
        start local 2 // boolean replace
         2: .line 1659
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuilder buf
         3: .line 1660
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 33
         5: .line 1661
      StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve java.util.List int java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* ch */
        start local 5 // char ch
         6: .line 1662
            iload 2 /* replace */
            ifeq 26
         7: .line 1667
            bipush 123
            iload 5 /* ch */
            if_icmpne 23
         8: .line 1668
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* name */
        start local 6 // java.lang.StringBuilder name
         9: .line 1669
            iload 4 /* i */
            iconst_1
            iadd
            istore 7 /* j */
        start local 7 // int j
        10: .line 1670
            goto 13
        11: .line 1671
      StackMap locals: int java.lang.StringBuilder int
      StackMap stack:
            aload 6 /* name */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
            iload 7 /* j */
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 1670
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* j */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 14
            bipush 125
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
            iload 7 /* j */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpne 11
        14: .line 1673
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            iconst_1
            iadd
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 21
        15: .line 1675
            iinc 7 /* j */ 1
        16: .line 1676
            aload 1 /* list */
            aload 0 /* this */
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 1677
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
            iload 7 /* j */
            invokevirtual java.lang.String.charAt:(I)C
        18: .line 1676
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.createAccessLogElement:(Ljava/lang/String;C)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 1678
            iload 7 /* j */
            istore 4 /* i */
        20: .line 1679
            goto 24
        21: .line 1682
      StackMap locals:
      StackMap stack:
            aload 1 /* list */
            aload 0 /* this */
            iload 5 /* ch */
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.createAccessLogElement:(C)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // int j
        end local 6 // java.lang.StringBuilder name
        22: .line 1684
            goto 24
        23: .line 1685
      StackMap locals:
      StackMap stack:
            aload 1 /* list */
            aload 0 /* this */
            iload 5 /* ch */
            invokevirtual org.apache.catalina.valves.AbstractAccessLogValve.createAccessLogElement:(C)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 1687
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* replace */
        25: .line 1688
            goto 32
      StackMap locals:
      StackMap stack:
        26: iload 5 /* ch */
            bipush 37
            if_icmpne 31
        27: .line 1689
            iconst_1
            istore 2 /* replace */
        28: .line 1690
            aload 1 /* list */
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 1691
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* buf */
        30: .line 1692
            goto 32
        31: .line 1693
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            iload 5 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 5 // char ch
        32: .line 1660
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 4 // int i
        34: .line 1696
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 36
        35: .line 1697
            aload 1 /* list */
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        36: .line 1699
      StackMap locals:
      StackMap stack:
            aload 1 /* list */
            iconst_0
            anewarray org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[]
            areturn
        end local 3 // java.lang.StringBuilder buf
        end local 2 // boolean replace
        end local 1 // java.util.List list
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   37     0     this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            1   37     1     list  Ljava/util/List<Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;>;
            2   37     2  replace  Z
            3   37     3      buf  Ljava/lang/StringBuilder;
            4   34     4        i  I
            6   32     5       ch  C
            9   22     6     name  Ljava/lang/StringBuilder;
           10   22     7        j  I

  private org.apache.catalina.valves.AbstractAccessLogValve$CachedElement[] createCachedElements(org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[]);
    descriptor: ([Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;)[Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
        start local 1 // org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[] elements
         0: .line 1704
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 1705
            aload 1 /* elements */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[] java.util.List top int int org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* element */
        start local 3 // org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement element
         3: .line 1706
            aload 3 /* element */
            instanceof org.apache.catalina.valves.AbstractAccessLogValve$CachedElement
            ifeq 5
         4: .line 1707
            aload 2 /* list */
            aload 3 /* element */
            checkcast org.apache.catalina.valves.AbstractAccessLogValve$CachedElement
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement element
         5: .line 1705
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 2
         7: .line 1710
            aload 2 /* list */
            iconst_0
            anewarray org.apache.catalina.valves.AbstractAccessLogValve$CachedElement
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.apache.catalina.valves.AbstractAccessLogValve$CachedElement[]
            areturn
        end local 2 // java.util.List list
        end local 1 // org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[] elements
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0    8     1  elements  [Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            1    8     2      list  Ljava/util/List<Lorg/apache/catalina/valves/AbstractAccessLogValve$CachedElement;>;
            3    5     3   element  Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    MethodParameters:
          Name  Flags
      elements  

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement createAccessLogElement(java.lang.String, char);
    descriptor: (Ljava/lang/String;C)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
        start local 1 // java.lang.String name
        start local 2 // char pattern
         0: .line 1721
            iload 2 /* pattern */
            lookupswitch { // 8
                   84: 10
                   99: 2
                  105: 1
                  111: 3
                  112: 4
                  114: 5
                  115: 8
                  116: 9
              default: 15
          }
         1: .line 1723
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$HeaderElement
            dup
            aload 1 /* name */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$HeaderElement.<init>:(Ljava/lang/String;)V
            areturn
         2: .line 1725
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$CookieElement
            dup
            aload 1 /* name */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$CookieElement.<init>:(Ljava/lang/String;)V
            areturn
         3: .line 1727
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ResponseHeaderElement
            dup
            aload 1 /* name */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ResponseHeaderElement.<init>:(Ljava/lang/String;)V
            areturn
         4: .line 1729
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$PortElement
            dup
            aload 0 /* this */
            aload 1 /* name */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$PortElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;Ljava/lang/String;)V
            areturn
         5: .line 1731
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            invokestatic org.apache.catalina.util.TLSUtil.isTLSRequestAttribute:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 1732
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.valves.AbstractAccessLogValve.tlsAttributeRequired:Z
         7: .line 1734
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$RequestAttributeElement
            dup
            aload 1 /* name */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$RequestAttributeElement.<init>:(Ljava/lang/String;)V
            areturn
         8: .line 1736
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$SessionAttributeElement
            dup
            aload 1 /* name */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$SessionAttributeElement.<init>:(Ljava/lang/String;)V
            areturn
         9: .line 1738
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement
            dup
            aload 0 /* this */
            aload 1 /* name */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;Ljava/lang/String;)V
            areturn
        10: .line 1741
      StackMap locals:
      StackMap stack:
            ldc "ms"
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 1742
            new org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement
            dup
            iconst_0
            iconst_1
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement.<init>:(ZZ)V
            areturn
        12: .line 1743
      StackMap locals:
      StackMap stack:
            ldc "us"
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 1744
            new org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement
            dup
            iconst_1
            iconst_0
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement.<init>:(ZZ)V
            areturn
        14: .line 1746
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement
            dup
            iconst_0
            iconst_0
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement.<init>:(ZZ)V
            areturn
        15: .line 1749
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            ldc "???"
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // char pattern
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0   16     1     name  Ljava/lang/String;
            0   16     2  pattern  C
    MethodParameters:
         Name  Flags
      name     
      pattern  

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement createAccessLogElement(char);
    descriptor: (C)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
        start local 1 // char pattern
         0: .line 1759
            iload 1 /* pattern */
            tableswitch { // 65 - 118
                   65: 2
                   66: 4
                   67: 23
                   68: 5
                   69: 23
                   70: 6
                   71: 23
                   72: 8
                   73: 21
                   74: 23
                   75: 23
                   76: 23
                   77: 23
                   78: 23
                   79: 23
                   80: 23
                   81: 23
                   82: 23
                   83: 15
                   84: 17
                   85: 19
                   86: 23
                   87: 23
                   88: 22
                   89: 23
                   90: 23
                   91: 23
                   92: 23
                   93: 23
                   94: 23
                   95: 23
                   96: 23
                   97: 1
                   98: 3
                   99: 23
                  100: 23
                  101: 23
                  102: 23
                  103: 23
                  104: 7
                  105: 23
                  106: 23
                  107: 23
                  108: 9
                  109: 10
                  110: 23
                  111: 23
                  112: 11
                  113: 12
                  114: 13
                  115: 14
                  116: 16
                  117: 18
                  118: 20
              default: 23
          }
         1: .line 1761
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$RemoteAddrElement
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$RemoteAddrElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
            areturn
         2: .line 1763
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$LocalAddrElement
            dup
            aload 0 /* this */
            getfield org.apache.catalina.valves.AbstractAccessLogValve.ipv6Canonical:Z
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$LocalAddrElement.<init>:(Z)V
            areturn
         3: .line 1765
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement
            dup
            iconst_1
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement.<init>:(Z)V
            areturn
         4: .line 1767
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement
            dup
            iconst_0
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement.<init>:(Z)V
            areturn
         5: .line 1769
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement
            dup
            iconst_1
            iconst_0
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement.<init>:(ZZ)V
            areturn
         6: .line 1771
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$FirstByteTimeElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$FirstByteTimeElement.<init>:()V
            areturn
         7: .line 1773
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$HostElement
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$HostElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
            areturn
         8: .line 1775
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ProtocolElement
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ProtocolElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
            areturn
         9: .line 1777
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$LogicalUserNameElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$LogicalUserNameElement.<init>:()V
            areturn
        10: .line 1779
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$MethodElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$MethodElement.<init>:()V
            areturn
        11: .line 1781
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$PortElement
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$PortElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
            areturn
        12: .line 1783
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$QueryElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$QueryElement.<init>:()V
            areturn
        13: .line 1785
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$RequestElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$RequestElement.<init>:()V
            areturn
        14: .line 1787
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$HttpStatusCodeElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$HttpStatusCodeElement.<init>:()V
            areturn
        15: .line 1789
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$SessionIdElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$SessionIdElement.<init>:()V
            areturn
        16: .line 1791
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
            areturn
        17: .line 1793
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement
            dup
            iconst_0
            iconst_0
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement.<init>:(ZZ)V
            areturn
        18: .line 1795
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$UserElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$UserElement.<init>:()V
            areturn
        19: .line 1797
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$RequestURIElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$RequestURIElement.<init>:()V
            areturn
        20: .line 1799
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$LocalServerNameElement
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$LocalServerNameElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
            areturn
        21: .line 1801
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ThreadNameElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ThreadNameElement.<init>:()V
            areturn
        22: .line 1803
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement.<init>:()V
            areturn
        23: .line 1805
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            new java.lang.StringBuilder
            dup
            ldc "???"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* pattern */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "???"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            areturn
        end local 1 // char pattern
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Lorg/apache/catalina/valves/AbstractAccessLogValve;
            0   24     1  pattern  C
    MethodParameters:
         Name  Flags
      pattern  

  private static org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache lambda$0();
    descriptor: ()Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 411
            new org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache
            dup
            bipush 60
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            getstatic org.apache.catalina.valves.AbstractAccessLogValve.globalDateCache:Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache;
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache.<init>:(ILjava/util/Locale;Lorg/apache/catalina/valves/AbstractAccessLogValve$DateFormatCache;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "AbstractAccessLogValve.java"
NestMembers:
  org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement  org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement  org.apache.catalina.valves.AbstractAccessLogValve$CachedElement  org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement  org.apache.catalina.valves.AbstractAccessLogValve$CookieElement  org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement  org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache  org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache$Cache  org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement  org.apache.catalina.valves.AbstractAccessLogValve$FirstByteTimeElement  org.apache.catalina.valves.AbstractAccessLogValve$FormatType  org.apache.catalina.valves.AbstractAccessLogValve$HeaderElement  org.apache.catalina.valves.AbstractAccessLogValve$HostElement  org.apache.catalina.valves.AbstractAccessLogValve$HttpStatusCodeElement  org.apache.catalina.valves.AbstractAccessLogValve$LocalAddrElement  org.apache.catalina.valves.AbstractAccessLogValve$LocalServerNameElement  org.apache.catalina.valves.AbstractAccessLogValve$LogicalUserNameElement  org.apache.catalina.valves.AbstractAccessLogValve$MethodElement  org.apache.catalina.valves.AbstractAccessLogValve$PortElement  org.apache.catalina.valves.AbstractAccessLogValve$PortType  org.apache.catalina.valves.AbstractAccessLogValve$ProtocolElement  org.apache.catalina.valves.AbstractAccessLogValve$QueryElement  org.apache.catalina.valves.AbstractAccessLogValve$RemoteAddrElement  org.apache.catalina.valves.AbstractAccessLogValve$RequestAttributeElement  org.apache.catalina.valves.AbstractAccessLogValve$RequestElement  org.apache.catalina.valves.AbstractAccessLogValve$RequestURIElement  org.apache.catalina.valves.AbstractAccessLogValve$ResponseHeaderElement  org.apache.catalina.valves.AbstractAccessLogValve$SessionAttributeElement  org.apache.catalina.valves.AbstractAccessLogValve$SessionIdElement  org.apache.catalina.valves.AbstractAccessLogValve$StringElement  org.apache.catalina.valves.AbstractAccessLogValve$ThreadNameElement  org.apache.catalina.valves.AbstractAccessLogValve$UserElement
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  protected abstract AccessLogElement = org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected ByteSentElement = org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected abstract CachedElement = org.apache.catalina.valves.AbstractAccessLogValve$CachedElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected ConnectionStatusElement = org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected CookieElement = org.apache.catalina.valves.AbstractAccessLogValve$CookieElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected DateAndTimeElement = org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected DateFormatCache = org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache of org.apache.catalina.valves.AbstractAccessLogValve
  protected ElapsedTimeElement = org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected FirstByteTimeElement = org.apache.catalina.valves.AbstractAccessLogValve$FirstByteTimeElement of org.apache.catalina.valves.AbstractAccessLogValve
  private final FormatType = org.apache.catalina.valves.AbstractAccessLogValve$FormatType of org.apache.catalina.valves.AbstractAccessLogValve
  protected HeaderElement = org.apache.catalina.valves.AbstractAccessLogValve$HeaderElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected HostElement = org.apache.catalina.valves.AbstractAccessLogValve$HostElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected HttpStatusCodeElement = org.apache.catalina.valves.AbstractAccessLogValve$HttpStatusCodeElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected LocalAddrElement = org.apache.catalina.valves.AbstractAccessLogValve$LocalAddrElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected LocalServerNameElement = org.apache.catalina.valves.AbstractAccessLogValve$LocalServerNameElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected LogicalUserNameElement = org.apache.catalina.valves.AbstractAccessLogValve$LogicalUserNameElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected MethodElement = org.apache.catalina.valves.AbstractAccessLogValve$MethodElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected PortElement = org.apache.catalina.valves.AbstractAccessLogValve$PortElement of org.apache.catalina.valves.AbstractAccessLogValve
  private final PortType = org.apache.catalina.valves.AbstractAccessLogValve$PortType of org.apache.catalina.valves.AbstractAccessLogValve
  protected ProtocolElement = org.apache.catalina.valves.AbstractAccessLogValve$ProtocolElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected QueryElement = org.apache.catalina.valves.AbstractAccessLogValve$QueryElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected RemoteAddrElement = org.apache.catalina.valves.AbstractAccessLogValve$RemoteAddrElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected RequestAttributeElement = org.apache.catalina.valves.AbstractAccessLogValve$RequestAttributeElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected RequestElement = org.apache.catalina.valves.AbstractAccessLogValve$RequestElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected RequestURIElement = org.apache.catalina.valves.AbstractAccessLogValve$RequestURIElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected ResponseHeaderElement = org.apache.catalina.valves.AbstractAccessLogValve$ResponseHeaderElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected SessionAttributeElement = org.apache.catalina.valves.AbstractAccessLogValve$SessionAttributeElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected SessionIdElement = org.apache.catalina.valves.AbstractAccessLogValve$SessionIdElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected StringElement = org.apache.catalina.valves.AbstractAccessLogValve$StringElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected ThreadNameElement = org.apache.catalina.valves.AbstractAccessLogValve$ThreadNameElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected UserElement = org.apache.catalina.valves.AbstractAccessLogValve$UserElement of org.apache.catalina.valves.AbstractAccessLogValve