public final class org.apache.catalina.valves.JDBCAccessLogValve extends org.apache.catalina.valves.ValveBase implements org.apache.catalina.AccessLog
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.catalina.valves.JDBCAccessLogValve
  super_class: org.apache.catalina.valves.ValveBase
{
  boolean useLongContentLength;
    descriptor: Z
    flags: (0x0000) 

  java.lang.String connectionName;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String connectionPassword;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.sql.Driver driver;
    descriptor: Ljava/sql/Driver;
    flags: (0x0000) 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private java.sql.Connection conn;
    descriptor: Ljava/sql/Connection;
    flags: (0x0002) ACC_PRIVATE

  private java.sql.PreparedStatement ps;
    descriptor: Ljava/sql/PreparedStatement;
    flags: (0x0002) ACC_PRIVATE

  private long currentTimeMillis;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  boolean requestAttributesEnabled;
    descriptor: Z
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
         0: .line 140
            aload 0 /* this */
            iconst_1
            invokespecial org.apache.catalina.valves.ValveBase.<init>:(Z)V
         1: .line 168
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.JDBCAccessLogValve.useLongContentLength:Z
         2: .line 173
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.connectionName:Ljava/lang/String;
         3: .line 179
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.connectionPassword:Ljava/lang/String;
         4: .line 184
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.driver:Ljava/sql/Driver;
         5: .line 216
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.valves.JDBCAccessLogValve.requestAttributesEnabled:Z
         6: .line 141
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.driverName:Ljava/lang/String;
         7: .line 142
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.connectionURL:Ljava/lang/String;
         8: .line 143
            aload 0 /* this */
            ldc "access"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.tableName:Ljava/lang/String;
         9: .line 144
            aload 0 /* this */
            ldc "remoteHost"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.remoteHostField:Ljava/lang/String;
        10: .line 145
            aload 0 /* this */
            ldc "userName"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.userField:Ljava/lang/String;
        11: .line 146
            aload 0 /* this */
            ldc "timestamp"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.timestampField:Ljava/lang/String;
        12: .line 147
            aload 0 /* this */
            ldc "virtualHost"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.virtualHostField:Ljava/lang/String;
        13: .line 148
            aload 0 /* this */
            ldc "method"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.methodField:Ljava/lang/String;
        14: .line 149
            aload 0 /* this */
            ldc "query"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.queryField:Ljava/lang/String;
        15: .line 150
            aload 0 /* this */
            ldc "status"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.statusField:Ljava/lang/String;
        16: .line 151
            aload 0 /* this */
            ldc "bytes"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.bytesField:Ljava/lang/String;
        17: .line 152
            aload 0 /* this */
            ldc "referer"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.refererField:Ljava/lang/String;
        18: .line 153
            aload 0 /* this */
            ldc "userAgent"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.userAgentField:Ljava/lang/String;
        19: .line 154
            aload 0 /* this */
            ldc "common"
            putfield org.apache.catalina.valves.JDBCAccessLogValve.pattern:Ljava/lang/String;
        20: .line 155
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.valves.JDBCAccessLogValve.resolveHosts:Z
        21: .line 156
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
        22: .line 157
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
        23: .line 158
            aload 0 /* this */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.util.Date.getTime:()J
            putfield org.apache.catalina.valves.JDBCAccessLogValve.currentTimeMillis:J
        24: .line 159
            return
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   25     0  this  Lorg/apache/catalina/valves/JDBCAccessLogValve;

  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.JDBCAccessLogValve this
        start local 1 // boolean requestAttributesEnabled
         0: .line 227
            aload 0 /* this */
            iload 1 /* requestAttributesEnabled */
            putfield org.apache.catalina.valves.JDBCAccessLogValve.requestAttributesEnabled:Z
         1: .line 228
            return
        end local 1 // boolean requestAttributesEnabled
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
            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.JDBCAccessLogValve this
         0: .line 235
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.requestAttributesEnabled:Z
            ireturn
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/JDBCAccessLogValve;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  public void setResolveHosts(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.JDBCAccessLogValve this
        start local 1 // java.lang.String resolveHosts
         0: .line 421
            aload 0 /* this */
            aload 1 /* resolveHosts */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putfield org.apache.catalina.valves.JDBCAccessLogValve.resolveHosts:Z
         1: .line 422
            return
        end local 1 // java.lang.String resolveHosts
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
            0    2     1  resolveHosts  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      resolveHosts  

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

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

  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=3, args_size=3
        start local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // org.apache.catalina.connector.Response response
         0: .line 455
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.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
         1: .line 456
            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.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
            0    2     1   request  Lorg/apache/catalina/connector/Request;
            0    2     2  response  Lorg/apache/catalina/connector/Response;
    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=6, locals=19, args_size=4
        start local 0 // org.apache.catalina.valves.JDBCAccessLogValve 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 461
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifne 2
         1: .line 462
            return
         2: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.resolveHosts:Z
            ifeq 12
         3: .line 469
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.requestAttributesEnabled:Z
            ifeq 10
         4: .line 470
            aload 1 /* request */
            ldc "org.apache.catalina.AccessLog.RemoteHost"
            invokevirtual org.apache.catalina.connector.Request.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            astore 6 /* host */
        start local 6 // java.lang.Object host
         5: .line 471
            aload 6 /* host */
            ifnonnull 8
         6: .line 472
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRemoteHost:()Ljava/lang/String;
            astore 5 /* remoteHost */
        start local 5 // java.lang.String remoteHost
         7: .line 473
            goto 20
        end local 5 // java.lang.String remoteHost
         8: .line 474
      StackMap locals: org.apache.catalina.valves.JDBCAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response long top java.lang.Object
      StackMap stack:
            aload 6 /* host */
            checkcast java.lang.String
            astore 5 /* remoteHost */
        end local 6 // java.lang.Object host
        start local 5 // java.lang.String remoteHost
         9: .line 476
            goto 20
        end local 5 // java.lang.String remoteHost
        10: .line 477
      StackMap locals: org.apache.catalina.valves.JDBCAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response long
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRemoteHost:()Ljava/lang/String;
            astore 5 /* remoteHost */
        start local 5 // java.lang.String remoteHost
        11: .line 479
            goto 20
        end local 5 // java.lang.String remoteHost
        12: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.requestAttributesEnabled:Z
            ifeq 19
        13: .line 481
            aload 1 /* request */
            ldc "org.apache.catalina.AccessLog.RemoteAddr"
            invokevirtual org.apache.catalina.connector.Request.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            astore 6 /* addr */
        start local 6 // java.lang.Object addr
        14: .line 482
            aload 6 /* addr */
            ifnonnull 17
        15: .line 483
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRemoteAddr:()Ljava/lang/String;
            astore 5 /* remoteHost */
        start local 5 // java.lang.String remoteHost
        16: .line 484
            goto 20
        end local 5 // java.lang.String remoteHost
        17: .line 485
      StackMap locals: org.apache.catalina.valves.JDBCAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response long top java.lang.Object
      StackMap stack:
            aload 6 /* addr */
            checkcast java.lang.String
            astore 5 /* remoteHost */
        end local 6 // java.lang.Object addr
        start local 5 // java.lang.String remoteHost
        18: .line 487
            goto 20
        end local 5 // java.lang.String remoteHost
        19: .line 488
      StackMap locals: org.apache.catalina.valves.JDBCAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response long
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRemoteAddr:()Ljava/lang/String;
            astore 5 /* remoteHost */
        start local 5 // java.lang.String remoteHost
        20: .line 491
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRemoteUser:()Ljava/lang/String;
            astore 6 /* user */
        start local 6 // java.lang.String user
        21: .line 492
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
            astore 7 /* query */
        start local 7 // java.lang.String query
        22: .line 494
            aload 2 /* response */
            iconst_1
            invokevirtual org.apache.catalina.connector.Response.getBytesWritten:(Z)J
            lstore 8 /* bytes */
        start local 8 // long bytes
        23: .line 495
            lload 8 /* bytes */
            lconst_0
            lcmp
            ifge 25
        24: .line 496
            lconst_0
            lstore 8 /* bytes */
        25: .line 498
      StackMap locals: java.lang.String java.lang.String long
      StackMap stack:
            aload 2 /* response */
            invokevirtual org.apache.catalina.connector.Response.getStatus:()I
            istore 10 /* status */
        start local 10 // int status
        26: .line 499
            ldc ""
            astore 11 /* virtualHost */
        start local 11 // java.lang.String virtualHost
        27: .line 500
            ldc ""
            astore 12 /* method */
        start local 12 // java.lang.String method
        28: .line 501
            ldc ""
            astore 13 /* referer */
        start local 13 // java.lang.String referer
        29: .line 502
            ldc ""
            astore 14 /* userAgent */
        start local 14 // java.lang.String userAgent
        30: .line 503
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.pattern:Ljava/lang/String;
            astore 15 /* logPattern */
        start local 15 // java.lang.String logPattern
        31: .line 504
            aload 15 /* logPattern */
            ldc "combined"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 36
        32: .line 505
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getServerName:()Ljava/lang/String;
            astore 11 /* virtualHost */
        33: .line 506
            aload 1 /* request */
            invokevirtual org.apache.catalina.connector.Request.getMethod:()Ljava/lang/String;
            astore 12 /* method */
        34: .line 507
            aload 1 /* request */
            ldc "referer"
            invokevirtual org.apache.catalina.connector.Request.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* referer */
        35: .line 508
            aload 1 /* request */
            ldc "user-agent"
            invokevirtual org.apache.catalina.connector.Request.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 14 /* userAgent */
        36: .line 510
      StackMap locals: org.apache.catalina.valves.JDBCAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response long java.lang.String java.lang.String java.lang.String long int java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            dup
            astore 16
            monitorenter
        37: .line 511
            iconst_2
            istore 17 /* numberOfTries */
        start local 17 // int numberOfTries
        38: .line 512
            goto 64
        39: .line 514
      StackMap locals: org.apache.catalina.valves.JDBCAccessLogValve int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.open:()V
        40: .line 516
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            iconst_1
            aload 5 /* remoteHost */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        41: .line 517
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            iconst_2
            aload 6 /* user */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        42: .line 518
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            iconst_3
            new java.sql.Timestamp
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.getCurrentTimeMillis:()J
            invokespecial java.sql.Timestamp.<init>:(J)V
            invokeinterface java.sql.PreparedStatement.setTimestamp:(ILjava/sql/Timestamp;)V
        43: .line 519
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            iconst_4
            aload 7 /* query */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        44: .line 520
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            iconst_5
            iload 10 /* status */
            invokeinterface java.sql.PreparedStatement.setInt:(II)V
        45: .line 522
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.useLongContentLength:Z
            ifeq 48
        46: .line 523
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            bipush 6
            lload 8 /* bytes */
            invokeinterface java.sql.PreparedStatement.setLong:(IJ)V
        47: .line 524
            goto 51
        48: .line 525
      StackMap locals:
      StackMap stack:
            lload 8 /* bytes */
            ldc 2147483647
            lcmp
            ifle 50
        49: .line 526
            ldc -1
            lstore 8 /* bytes */
        50: .line 528
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            bipush 6
            lload 8 /* bytes */
            l2i
            invokeinterface java.sql.PreparedStatement.setInt:(II)V
        51: .line 530
      StackMap locals:
      StackMap stack:
            aload 15 /* logPattern */
            ldc "combined"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 56
        52: .line 531
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            bipush 7
            aload 11 /* virtualHost */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        53: .line 532
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            bipush 8
            aload 12 /* method */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        54: .line 533
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            bipush 9
            aload 13 /* referer */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        55: .line 534
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            bipush 10
            aload 14 /* userAgent */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        56: .line 536
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            invokeinterface java.sql.PreparedStatement.executeUpdate:()I
            pop
        57: .line 537
            aload 16
            monitorexit
        58: return
        59: .line 538
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 18 /* e */
        start local 18 // java.sql.SQLException e
        60: .line 540
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.container:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.JDBCAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "jdbcAccessLogValve.exception"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 18 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        61: .line 543
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
            ifnull 63
        62: .line 544
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.close:()V
        end local 18 // java.sql.SQLException e
        63: .line 547
      StackMap locals:
      StackMap stack:
            iinc 17 /* numberOfTries */ -1
        64: .line 512
      StackMap locals:
      StackMap stack:
            iload 17 /* numberOfTries */
            ifgt 39
        end local 17 // int numberOfTries
        65: .line 510
            aload 16
            monitorexit
        66: goto 69
      StackMap locals: org.apache.catalina.valves.JDBCAccessLogValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response long java.lang.String java.lang.String java.lang.String long int java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String org.apache.catalina.valves.JDBCAccessLogValve
      StackMap stack: java.lang.Throwable
        67: aload 16
            monitorexit
        68: athrow
        69: .line 551
      StackMap locals:
      StackMap stack:
            return
        end local 15 // java.lang.String logPattern
        end local 14 // java.lang.String userAgent
        end local 13 // java.lang.String referer
        end local 12 // java.lang.String method
        end local 11 // java.lang.String virtualHost
        end local 10 // int status
        end local 8 // long bytes
        end local 7 // java.lang.String query
        end local 6 // java.lang.String user
        end local 5 // java.lang.String remoteHost
        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.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   70     0           this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
            0   70     1        request  Lorg/apache/catalina/connector/Request;
            0   70     2       response  Lorg/apache/catalina/connector/Response;
            0   70     3           time  J
            7    8     5     remoteHost  Ljava/lang/String;
            9   10     5     remoteHost  Ljava/lang/String;
           11   12     5     remoteHost  Ljava/lang/String;
           16   17     5     remoteHost  Ljava/lang/String;
           18   19     5     remoteHost  Ljava/lang/String;
           20   70     5     remoteHost  Ljava/lang/String;
            5    9     6           host  Ljava/lang/Object;
           14   18     6           addr  Ljava/lang/Object;
           21   70     6           user  Ljava/lang/String;
           22   70     7          query  Ljava/lang/String;
           23   70     8          bytes  J
           26   70    10         status  I
           27   70    11    virtualHost  Ljava/lang/String;
           28   70    12         method  Ljava/lang/String;
           29   70    13        referer  Ljava/lang/String;
           30   70    14      userAgent  Ljava/lang/String;
           31   70    15     logPattern  Ljava/lang/String;
           38   65    17  numberOfTries  I
           60   63    18              e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          39    57      59  Class java.sql.SQLException
          37    58      67  any
          59    66      67  any
          67    68      67  any
    MethodParameters:
          Name  Flags
      request   
      response  
      time      

  protected void open();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
         0: .line 563
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
            ifnull 2
         1: .line 564
            return
         2: .line 568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.driver:Ljava/sql/Driver;
            ifnonnull 9
         3: .line 570
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.driverName:Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 1 /* clazz */
        start local 1 // java.lang.Class clazz
         4: .line 571
            aload 0 /* this */
            aload 1 /* clazz */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.sql.Driver
            putfield org.apache.catalina.valves.JDBCAccessLogValve.driver:Ljava/sql/Driver;
        end local 1 // java.lang.Class clazz
         5: .line 572
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1 /* e */
        start local 1 // java.lang.Throwable e
         7: .line 573
            aload 1 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
         8: .line 574
            new java.sql.SQLException
            dup
            aload 1 /* e */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Throwable e
         9: .line 579
      StackMap locals:
      StackMap stack:
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 1 /* props */
        start local 1 // java.util.Properties props
        10: .line 580
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.connectionName:Ljava/lang/String;
            ifnull 12
        11: .line 581
            aload 1 /* props */
            ldc "user"
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.connectionName:Ljava/lang/String;
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 583
      StackMap locals: java.util.Properties
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.connectionPassword:Ljava/lang/String;
            ifnull 14
        13: .line 584
            aload 1 /* props */
            ldc "password"
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.connectionPassword:Ljava/lang/String;
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 586
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.driver:Ljava/sql/Driver;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.connectionURL:Ljava/lang/String;
            aload 1 /* props */
            invokeinterface java.sql.Driver.connect:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
            putfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
        15: .line 587
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
            iconst_1
            invokeinterface java.sql.Connection.setAutoCommit:(Z)V
        16: .line 588
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.pattern:Ljava/lang/String;
            astore 2 /* logPattern */
        start local 2 // java.lang.String logPattern
        17: .line 589
            aload 2 /* logPattern */
            ldc "common"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        18: .line 590
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
        19: .line 591
            new java.lang.StringBuilder
            dup
            ldc "INSERT INTO "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 592
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.remoteHostField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.userField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 593
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.timestampField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.queryField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        22: .line 594
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.statusField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.bytesField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 595
            ldc ") VALUES(?, ?, ?, ?, ?, ?)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 591
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 590
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            putfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
        26: .line 596
            goto 38
      StackMap locals: java.lang.String
      StackMap stack:
        27: aload 2 /* logPattern */
            ldc "combined"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 38
        28: .line 597
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
        29: .line 598
            new java.lang.StringBuilder
            dup
            ldc "INSERT INTO "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 599
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.remoteHostField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.userField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 600
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.timestampField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.queryField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 601
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.statusField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.bytesField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 602
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.virtualHostField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.methodField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 603
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.refererField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.userAgentField:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 604
            ldc ") VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 598
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 597
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            putfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
        38: .line 606
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String logPattern
        end local 1 // java.util.Properties props
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   39     0        this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
            4    5     1       clazz  Ljava/lang/Class<*>;
            7    9     1           e  Ljava/lang/Throwable;
           10   39     1       props  Ljava/util/Properties;
           17   39     2  logPattern  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Throwable
    Exceptions:
      throws java.sql.SQLException

  protected void close();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
         0: .line 614
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
            ifnonnull 2
         1: .line 615
            return
         2: .line 620
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
            invokeinterface java.sql.PreparedStatement.close:()V
         3: .line 621
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1 /* f */
        start local 1 // java.lang.Throwable f
         5: .line 622
            aload 1 /* f */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable f
         6: .line 624
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.ps:Ljava/sql/PreparedStatement;
         7: .line 630
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.close:()V
         8: .line 631
            goto 15
      StackMap locals:
      StackMap stack: java.sql.SQLException
         9: astore 1 /* e */
        start local 1 // java.sql.SQLException e
        10: .line 632
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.container:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.JDBCAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "jdbcAccessLogValve.close"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.sql.SQLException e
        11: .line 634
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
            goto 16
        12: .line 633
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        13: .line 634
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
        14: .line 635
            aload 2
            athrow
        15: .line 634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.valves.JDBCAccessLogValve.conn:Ljava/sql/Connection;
        16: .line 637
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
            5    6     1     f  Ljava/lang/Throwable;
           10   11     1     e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
           7     8       9  Class java.sql.SQLException
           7    11      12  any

  protected synchronized void startInternal();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
         0: .line 651
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.open:()V
         1: .line 652
            goto 4
      StackMap locals:
      StackMap stack: java.sql.SQLException
         2: astore 1 /* e */
        start local 1 // java.sql.SQLException e
         3: .line 653
            new org.apache.catalina.LifecycleException
            dup
            aload 1 /* e */
            invokespecial org.apache.catalina.LifecycleException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.sql.SQLException e
         4: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STARTING:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.setState:(Lorg/apache/catalina/LifecycleState;)V
         5: .line 657
            return
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
            3    4     1     e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.sql.SQLException
    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.JDBCAccessLogValve this
         0: .line 670
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STOPPING:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.setState:(Lorg/apache/catalina/LifecycleState;)V
         1: .line 672
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.JDBCAccessLogValve.close:()V
         2: .line 673
            return
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  public long getCurrentTimeMillis();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
         0: .line 677
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 1 /* systime */
        start local 1 // long systime
         1: .line 678
            lload 1 /* systime */
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.currentTimeMillis:J
            lsub
            ldc 1000
            lcmp
            ifle 3
         2: .line 679
            aload 0 /* this */
            new java.util.Date
            dup
            lload 1 /* systime */
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.util.Date.getTime:()J
            putfield org.apache.catalina.valves.JDBCAccessLogValve.currentTimeMillis:J
         3: .line 681
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.valves.JDBCAccessLogValve.currentTimeMillis:J
            lreturn
        end local 1 // long systime
        end local 0 // org.apache.catalina.valves.JDBCAccessLogValve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/apache/catalina/valves/JDBCAccessLogValve;
            1    4     1  systime  J
}
SourceFile: "JDBCAccessLogValve.java"