public class org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement implements org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement
  super_class: java.lang.Object
{
  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement this
         0: .line 1613
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/AbstractAccessLogValve$ConnectionStatusElement;

  public void addElement(java.io.CharArrayWriter, java.util.Date, org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, long);
    descriptor: (Ljava/io/CharArrayWriter;Ljava/util/Date;Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=6
        start local 0 // org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement this
        start local 1 // java.io.CharArrayWriter buf
        start local 2 // java.util.Date date
        start local 3 // org.apache.catalina.connector.Request request
        start local 4 // org.apache.catalina.connector.Response response
        start local 5 // long time
         0: .line 1616
            aload 4 /* response */
            ifnull 20
            aload 3 /* request */
            ifnull 20
         1: .line 1617
            iconst_0
            istore 7 /* statusFound */
        start local 7 // boolean statusFound
         2: .line 1620
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 8 /* isIoAllowed */
        start local 8 // java.util.concurrent.atomic.AtomicBoolean isIoAllowed
         3: .line 1621
            aload 3 /* request */
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ActionCode.IS_IO_ALLOWED:Lorg/apache/coyote/ActionCode;
            aload 8 /* isIoAllowed */
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         4: .line 1622
            aload 8 /* isIoAllowed */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifne 8
         5: .line 1623
            aload 1 /* buf */
            bipush 88
            invokevirtual java.io.CharArrayWriter.append:(C)Ljava/io/CharArrayWriter;
            pop
         6: .line 1624
            iconst_1
            istore 7 /* statusFound */
         7: .line 1625
            goto 13
         8: .line 1627
      StackMap locals: int java.util.concurrent.atomic.AtomicBoolean
      StackMap stack:
            aload 4 /* response */
            invokevirtual org.apache.catalina.connector.Response.isError:()Z
            ifeq 13
         9: .line 1628
            aload 3 /* request */
            ldc "jakarta.servlet.error.exception"
            invokevirtual org.apache.catalina.connector.Request.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Throwable
            astore 9 /* ex */
        start local 9 // java.lang.Throwable ex
        10: .line 1629
            aload 9 /* ex */
            instanceof org.apache.catalina.connector.ClientAbortException
            ifeq 13
        11: .line 1630
            aload 1 /* buf */
            bipush 88
            invokevirtual java.io.CharArrayWriter.append:(C)Ljava/io/CharArrayWriter;
            pop
        12: .line 1631
            iconst_1
            istore 7 /* statusFound */
        end local 9 // java.lang.Throwable ex
        13: .line 1637
      StackMap locals:
      StackMap stack:
            iload 7 /* statusFound */
            ifne 21
        14: .line 1638
            aload 4 /* response */
            ldc "Connection"
            invokevirtual org.apache.catalina.connector.Response.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* connStatus */
        start local 9 // java.lang.String connStatus
        15: .line 1639
            ldc "close"
            aload 9 /* connStatus */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 18
        16: .line 1640
            aload 1 /* buf */
            bipush 45
            invokevirtual java.io.CharArrayWriter.append:(C)Ljava/io/CharArrayWriter;
            pop
        17: .line 1641
            goto 21
        18: .line 1642
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* buf */
            bipush 43
            invokevirtual java.io.CharArrayWriter.append:(C)Ljava/io/CharArrayWriter;
            pop
        end local 9 // java.lang.String connStatus
        end local 8 // java.util.concurrent.atomic.AtomicBoolean isIoAllowed
        end local 7 // boolean statusFound
        19: .line 1645
            goto 21
        20: .line 1647
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            bipush 63
            invokevirtual java.io.CharArrayWriter.append:(C)Ljava/io/CharArrayWriter;
            pop
        21: .line 1649
      StackMap locals:
      StackMap stack:
            return
        end local 5 // long time
        end local 4 // org.apache.catalina.connector.Response response
        end local 3 // org.apache.catalina.connector.Request request
        end local 2 // java.util.Date date
        end local 1 // java.io.CharArrayWriter buf
        end local 0 // org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0         this  Lorg/apache/catalina/valves/AbstractAccessLogValve$ConnectionStatusElement;
            0   22     1          buf  Ljava/io/CharArrayWriter;
            0   22     2         date  Ljava/util/Date;
            0   22     3      request  Lorg/apache/catalina/connector/Request;
            0   22     4     response  Lorg/apache/catalina/connector/Response;
            0   22     5         time  J
            2   19     7  statusFound  Z
            3   19     8  isIoAllowed  Ljava/util/concurrent/atomic/AtomicBoolean;
           10   13     9           ex  Ljava/lang/Throwable;
           15   19     9   connStatus  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      buf       
      date      
      request   
      response  
      time      
}
SourceFile: "AbstractAccessLogValve.java"
NestHost: org.apache.catalina.valves.AbstractAccessLogValve
InnerClasses:
  protected abstract AccessLogElement = org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected ConnectionStatusElement = org.apache.catalina.valves.AbstractAccessLogValve$ConnectionStatusElement of org.apache.catalina.valves.AbstractAccessLogValve