public class org.apache.catalina.session.DataSourceStore extends org.apache.catalina.session.StoreBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.session.DataSourceStore
  super_class: org.apache.catalina.session.StoreBase
{
  private java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  protected static final java.lang.String storeName;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "dataSourceStore"

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

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

  protected javax.sql.DataSource dataSource;
    descriptor: Ljavax/sql/DataSource;
    flags: (0x0004) ACC_PROTECTED

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

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

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

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

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

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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 53
            aload 0 /* this */
            invokespecial org.apache.catalina.session.StoreBase.<init>:()V
         1: .line 58
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.session.DataSourceStore.name:Ljava/lang/String;
         2: .line 68
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.session.DataSourceStore.dataSourceName:Ljava/lang/String;
         3: .line 73
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.session.DataSourceStore.localDataSource:Z
         4: .line 78
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.session.DataSourceStore.dataSource:Ljavax/sql/DataSource;
         5: .line 86
            aload 0 /* this */
            ldc "tomcat$sessions"
            putfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
         6: .line 91
            aload 0 /* this */
            ldc "app"
            putfield org.apache.catalina.session.DataSourceStore.sessionAppCol:Ljava/lang/String;
         7: .line 96
            aload 0 /* this */
            ldc "id"
            putfield org.apache.catalina.session.DataSourceStore.sessionIdCol:Ljava/lang/String;
         8: .line 101
            aload 0 /* this */
            ldc "data"
            putfield org.apache.catalina.session.DataSourceStore.sessionDataCol:Ljava/lang/String;
         9: .line 106
            aload 0 /* this */
            ldc "valid"
            putfield org.apache.catalina.session.DataSourceStore.sessionValidCol:Ljava/lang/String;
        10: .line 111
            aload 0 /* this */
            ldc "maxinactive"
            putfield org.apache.catalina.session.DataSourceStore.sessionMaxInactiveCol:Ljava/lang/String;
        11: .line 116
            aload 0 /* this */
            ldc "lastaccess"
            putfield org.apache.catalina.session.DataSourceStore.sessionLastAccessedCol:Ljava/lang/String;
        12: .line 53
            return
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/apache/catalina/session/DataSourceStore;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 124
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.name:Ljava/lang/String;
            ifnonnull 13
         1: .line 125
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            astore 1 /* container */
        start local 1 // org.apache.catalina.Container container
         2: .line 126
            aload 1 /* container */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            astore 2 /* contextName */
        start local 2 // java.lang.String contextName
         3: .line 127
            aload 2 /* contextName */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 5
         4: .line 128
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* contextName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* contextName */
         5: .line 130
      StackMap locals: org.apache.catalina.Container java.lang.String
      StackMap stack:
            ldc ""
            astore 3 /* hostName */
        start local 3 // java.lang.String hostName
         6: .line 131
            ldc ""
            astore 4 /* engineName */
        start local 4 // java.lang.String engineName
         7: .line 133
            aload 1 /* container */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            ifnull 12
         8: .line 134
            aload 1 /* container */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            astore 5 /* host */
        start local 5 // org.apache.catalina.Container host
         9: .line 135
            aload 5 /* host */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            astore 3 /* hostName */
        10: .line 136
            aload 5 /* host */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            ifnull 12
        11: .line 137
            aload 5 /* host */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            astore 4 /* engineName */
        end local 5 // org.apache.catalina.Container host
        12: .line 140
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* engineName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* hostName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* contextName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.apache.catalina.session.DataSourceStore.name:Ljava/lang/String;
        end local 4 // java.lang.String engineName
        end local 3 // java.lang.String hostName
        end local 2 // java.lang.String contextName
        end local 1 // org.apache.catalina.Container container
        13: .line 142
      StackMap locals: org.apache.catalina.session.DataSourceStore
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.name:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/apache/catalina/session/DataSourceStore;
            2   13     1    container  Lorg/apache/catalina/Container;
            3   13     2  contextName  Ljava/lang/String;
            6   13     3     hostName  Ljava/lang/String;
            7   13     4   engineName  Ljava/lang/String;
            9   12     5         host  Lorg/apache/catalina/Container;

  public java.lang.String getStoreName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 150
            ldc "dataSourceStore"
            areturn
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/session/DataSourceStore;

  public void setSessionTable(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String sessionTable
         0: .line 159
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            astore 2 /* oldSessionTable */
        start local 2 // java.lang.String oldSessionTable
         1: .line 160
            aload 0 /* this */
            aload 1 /* sessionTable */
            putfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
         2: .line 161
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.support:Ljava/beans/PropertyChangeSupport;
            ldc "sessionTable"
         3: .line 162
            aload 2 /* oldSessionTable */
         4: .line 163
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
         5: .line 161
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 164
            return
        end local 2 // java.lang.String oldSessionTable
        end local 1 // java.lang.String sessionTable
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/catalina/session/DataSourceStore;
            0    7     1     sessionTable  Ljava/lang/String;
            1    7     2  oldSessionTable  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      sessionTable  

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

  public void setSessionAppCol(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String sessionAppCol
         0: .line 179
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionAppCol:Ljava/lang/String;
            astore 2 /* oldSessionAppCol */
        start local 2 // java.lang.String oldSessionAppCol
         1: .line 180
            aload 0 /* this */
            aload 1 /* sessionAppCol */
            putfield org.apache.catalina.session.DataSourceStore.sessionAppCol:Ljava/lang/String;
         2: .line 181
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.support:Ljava/beans/PropertyChangeSupport;
            ldc "sessionAppCol"
         3: .line 182
            aload 2 /* oldSessionAppCol */
         4: .line 183
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionAppCol:Ljava/lang/String;
         5: .line 181
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 184
            return
        end local 2 // java.lang.String oldSessionAppCol
        end local 1 // java.lang.String sessionAppCol
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/apache/catalina/session/DataSourceStore;
            0    7     1     sessionAppCol  Ljava/lang/String;
            1    7     2  oldSessionAppCol  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      sessionAppCol  

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

  public void setSessionIdCol(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String sessionIdCol
         0: .line 199
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionIdCol:Ljava/lang/String;
            astore 2 /* oldSessionIdCol */
        start local 2 // java.lang.String oldSessionIdCol
         1: .line 200
            aload 0 /* this */
            aload 1 /* sessionIdCol */
            putfield org.apache.catalina.session.DataSourceStore.sessionIdCol:Ljava/lang/String;
         2: .line 201
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.support:Ljava/beans/PropertyChangeSupport;
            ldc "sessionIdCol"
         3: .line 202
            aload 2 /* oldSessionIdCol */
         4: .line 203
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionIdCol:Ljava/lang/String;
         5: .line 201
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 204
            return
        end local 2 // java.lang.String oldSessionIdCol
        end local 1 // java.lang.String sessionIdCol
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/catalina/session/DataSourceStore;
            0    7     1     sessionIdCol  Ljava/lang/String;
            1    7     2  oldSessionIdCol  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      sessionIdCol  

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

  public void setSessionDataCol(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String sessionDataCol
         0: .line 219
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionDataCol:Ljava/lang/String;
            astore 2 /* oldSessionDataCol */
        start local 2 // java.lang.String oldSessionDataCol
         1: .line 220
            aload 0 /* this */
            aload 1 /* sessionDataCol */
            putfield org.apache.catalina.session.DataSourceStore.sessionDataCol:Ljava/lang/String;
         2: .line 221
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.support:Ljava/beans/PropertyChangeSupport;
            ldc "sessionDataCol"
         3: .line 222
            aload 2 /* oldSessionDataCol */
         4: .line 223
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionDataCol:Ljava/lang/String;
         5: .line 221
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 224
            return
        end local 2 // java.lang.String oldSessionDataCol
        end local 1 // java.lang.String sessionDataCol
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/apache/catalina/session/DataSourceStore;
            0    7     1     sessionDataCol  Ljava/lang/String;
            1    7     2  oldSessionDataCol  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      sessionDataCol  

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

  public void setSessionValidCol(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String sessionValidCol
         0: .line 239
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionValidCol:Ljava/lang/String;
            astore 2 /* oldSessionValidCol */
        start local 2 // java.lang.String oldSessionValidCol
         1: .line 240
            aload 0 /* this */
            aload 1 /* sessionValidCol */
            putfield org.apache.catalina.session.DataSourceStore.sessionValidCol:Ljava/lang/String;
         2: .line 241
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.support:Ljava/beans/PropertyChangeSupport;
            ldc "sessionValidCol"
         3: .line 242
            aload 2 /* oldSessionValidCol */
         4: .line 243
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionValidCol:Ljava/lang/String;
         5: .line 241
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 244
            return
        end local 2 // java.lang.String oldSessionValidCol
        end local 1 // java.lang.String sessionValidCol
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lorg/apache/catalina/session/DataSourceStore;
            0    7     1     sessionValidCol  Ljava/lang/String;
            1    7     2  oldSessionValidCol  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      sessionValidCol  

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

  public void setSessionMaxInactiveCol(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String sessionMaxInactiveCol
         0: .line 259
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionMaxInactiveCol:Ljava/lang/String;
            astore 2 /* oldSessionMaxInactiveCol */
        start local 2 // java.lang.String oldSessionMaxInactiveCol
         1: .line 260
            aload 0 /* this */
            aload 1 /* sessionMaxInactiveCol */
            putfield org.apache.catalina.session.DataSourceStore.sessionMaxInactiveCol:Ljava/lang/String;
         2: .line 261
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.support:Ljava/beans/PropertyChangeSupport;
            ldc "sessionMaxInactiveCol"
         3: .line 262
            aload 2 /* oldSessionMaxInactiveCol */
         4: .line 263
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionMaxInactiveCol:Ljava/lang/String;
         5: .line 261
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 264
            return
        end local 2 // java.lang.String oldSessionMaxInactiveCol
        end local 1 // java.lang.String sessionMaxInactiveCol
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    7     0                      this  Lorg/apache/catalina/session/DataSourceStore;
            0    7     1     sessionMaxInactiveCol  Ljava/lang/String;
            1    7     2  oldSessionMaxInactiveCol  Ljava/lang/String;
    MethodParameters:
                       Name  Flags
      sessionMaxInactiveCol  

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

  public void setSessionLastAccessedCol(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String sessionLastAccessedCol
         0: .line 279
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionLastAccessedCol:Ljava/lang/String;
            astore 2 /* oldSessionLastAccessedCol */
        start local 2 // java.lang.String oldSessionLastAccessedCol
         1: .line 280
            aload 0 /* this */
            aload 1 /* sessionLastAccessedCol */
            putfield org.apache.catalina.session.DataSourceStore.sessionLastAccessedCol:Ljava/lang/String;
         2: .line 281
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.support:Ljava/beans/PropertyChangeSupport;
            ldc "sessionLastAccessedCol"
         3: .line 282
            aload 2 /* oldSessionLastAccessedCol */
         4: .line 283
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionLastAccessedCol:Ljava/lang/String;
         5: .line 281
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 284
            return
        end local 2 // java.lang.String oldSessionLastAccessedCol
        end local 1 // java.lang.String sessionLastAccessedCol
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    7     0                       this  Lorg/apache/catalina/session/DataSourceStore;
            0    7     1     sessionLastAccessedCol  Ljava/lang/String;
            1    7     2  oldSessionLastAccessedCol  Ljava/lang/String;
    MethodParameters:
                        Name  Flags
      sessionLastAccessedCol  

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

  public void setDataSourceName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String dataSourceName
         0: .line 299
            aload 1 /* dataSourceName */
            ifnull 1
            aload 1 /* dataSourceName */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 5
         1: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
         2: .line 301
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".missingDataSourceName"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 300
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
         4: .line 302
            return
         5: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* dataSourceName */
            putfield org.apache.catalina.session.DataSourceStore.dataSourceName:Ljava/lang/String;
         6: .line 305
            return
        end local 1 // java.lang.String dataSourceName
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/apache/catalina/session/DataSourceStore;
            0    7     1  dataSourceName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      dataSourceName  

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

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

  public void setLocalDataSource(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // boolean localDataSource
         0: .line 328
            aload 0 /* this */
            iload 1 /* localDataSource */
            putfield org.apache.catalina.session.DataSourceStore.localDataSource:Z
         1: .line 329
            return
        end local 1 // boolean localDataSource
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/catalina/session/DataSourceStore;
            0    2     1  localDataSource  Z
    MethodParameters:
                 Name  Flags
      localDataSource  

  public java.lang.String[] expiredKeys();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 336
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.catalina.session.DataSourceStore.keys:(Z)[Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/session/DataSourceStore;
    Exceptions:
      throws java.io.IOException

  public java.lang.String[] keys();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 341
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.session.DataSourceStore.keys:(Z)[Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/session/DataSourceStore;
    Exceptions:
      throws java.io.IOException

  private java.lang.String[] keys(boolean);
    descriptor: (Z)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=14, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // boolean expiredOnly
         0: .line 356
            aconst_null
            astore 2 /* keys */
        start local 2 // java.lang.String[] keys
         1: .line 357
            iconst_2
            istore 3 /* numberOfTries */
        start local 3 // int numberOfTries
         2: .line 358
            goto 48
         3: .line 360
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getConnection:()Ljava/sql/Connection;
            astore 4 /* _conn */
        start local 4 // java.sql.Connection _conn
         4: .line 361
            aload 4 /* _conn */
            ifnonnull 6
         5: .line 362
            iconst_0
            anewarray java.lang.String
            areturn
         6: .line 366
      StackMap locals: java.sql.Connection
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "SELECT "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionIdCol:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " FROM "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 367
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " WHERE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionAppCol: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;
         8: .line 366
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* keysSql */
        start local 5 // java.lang.String keysSql
         9: .line 368
            iload 1 /* expiredOnly */
            ifeq 13
        10: .line 369
            new java.lang.StringBuilder
            dup
            aload 5 /* keysSql */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " AND ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionLastAccessedCol: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;
        11: .line 370
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionMaxInactiveCol:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " * 1000 < ?)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 369
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* keysSql */
        13: .line 372
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 6
            aconst_null
            astore 7
        14: aload 4 /* _conn */
            aload 5 /* keysSql */
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 8 /* preparedKeysSql */
        start local 8 // java.sql.PreparedStatement preparedKeysSql
        15: .line 373
            aload 8 /* preparedKeysSql */
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getName:()Ljava/lang/String;
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        16: .line 374
            iload 1 /* expiredOnly */
            ifeq 18
        17: .line 375
            aload 8 /* preparedKeysSql */
            iconst_2
            invokestatic java.lang.System.currentTimeMillis:()J
            invokeinterface java.sql.PreparedStatement.setLong:(IJ)V
        18: .line 377
      StackMap locals: java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement
      StackMap stack:
            aconst_null
            astore 9
            aconst_null
            astore 10
        19: aload 8 /* preparedKeysSql */
            invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            astore 11 /* rst */
        start local 11 // java.sql.ResultSet rst
        20: .line 378
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* tmpkeys */
        start local 12 // java.util.List tmpkeys
        21: .line 379
            aload 11 /* rst */
            ifnull 25
        22: .line 380
            goto 24
        23: .line 381
      StackMap locals: org.apache.catalina.session.DataSourceStore int java.lang.String[] int java.sql.Connection java.lang.String java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.Throwable java.lang.Throwable java.sql.ResultSet java.util.List
      StackMap stack:
            aload 12 /* tmpkeys */
            aload 11 /* rst */
            iconst_1
            invokeinterface java.sql.ResultSet.getString:(I)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 380
      StackMap locals:
      StackMap stack:
            aload 11 /* rst */
            invokeinterface java.sql.ResultSet.next:()Z
            ifne 23
        25: .line 384
      StackMap locals:
      StackMap stack:
            aload 12 /* tmpkeys */
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 2 /* keys */
        26: .line 386
            iconst_0
            istore 3 /* numberOfTries */
        end local 12 // java.util.List tmpkeys
        27: .line 387
            aload 11 /* rst */
            ifnull 33
            aload 11 /* rst */
            invokeinterface java.sql.ResultSet.close:()V
            goto 33
      StackMap locals: org.apache.catalina.session.DataSourceStore int java.lang.String[] int java.sql.Connection java.lang.String java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.Throwable java.lang.Throwable java.sql.ResultSet
      StackMap stack: java.lang.Throwable
        28: astore 9
            aload 11 /* rst */
            ifnull 29
            aload 11 /* rst */
            invokeinterface java.sql.ResultSet.close:()V
        end local 11 // java.sql.ResultSet rst
      StackMap locals:
      StackMap stack:
        29: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 10
            aload 9
            ifnonnull 31
            aload 10
            astore 9
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 9
            aload 10
            if_acmpeq 32
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        32: aload 9
            athrow
        33: .line 388
      StackMap locals:
      StackMap stack:
            aload 8 /* preparedKeysSql */
            ifnull 46
            aload 8 /* preparedKeysSql */
            invokeinterface java.sql.PreparedStatement.close:()V
            goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 6
            aload 8 /* preparedKeysSql */
            ifnull 35
            aload 8 /* preparedKeysSql */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 8 // java.sql.PreparedStatement preparedKeysSql
      StackMap locals:
      StackMap stack:
        35: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        36: astore 7
            aload 6
            ifnonnull 37
            aload 7
            astore 6
            goto 38
      StackMap locals:
      StackMap stack:
        37: aload 6
            aload 7
            if_acmpeq 38
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        38: aload 6
            athrow
        end local 5 // java.lang.String keysSql
        39: .line 389
      StackMap locals: org.apache.catalina.session.DataSourceStore int java.lang.String[] int java.sql.Connection
      StackMap stack: java.sql.SQLException
            astore 5 /* e */
        start local 5 // java.sql.SQLException e
        40: .line 390
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".SQLException"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* e */
            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
        41: .line 391
            iconst_0
            anewarray java.lang.String
            astore 2 /* keys */
        end local 5 // java.sql.SQLException e
        42: .line 394
            aload 0 /* this */
            aload 4 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
            goto 47
        43: .line 393
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        44: .line 394
            aload 0 /* this */
            aload 4 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        45: .line 395
            aload 13
            athrow
        46: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        47: .line 396
      StackMap locals:
      StackMap stack:
            iinc 3 /* numberOfTries */ -1
        end local 4 // java.sql.Connection _conn
        48: .line 358
      StackMap locals:
      StackMap stack:
            iload 3 /* numberOfTries */
            ifgt 3
        49: .line 398
            aload 2 /* keys */
            areturn
        end local 3 // int numberOfTries
        end local 2 // java.lang.String[] keys
        end local 1 // boolean expiredOnly
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   50     0             this  Lorg/apache/catalina/session/DataSourceStore;
            0   50     1      expiredOnly  Z
            1   50     2             keys  [Ljava/lang/String;
            2   50     3    numberOfTries  I
            4   48     4            _conn  Ljava/sql/Connection;
            9   39     5          keysSql  Ljava/lang/String;
           15   35     8  preparedKeysSql  Ljava/sql/PreparedStatement;
           20   29    11              rst  Ljava/sql/ResultSet;
           21   27    12          tmpkeys  Ljava/util/List<Ljava/lang/String;>;
           40   42     5                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          20    27      28  any
          19    30      30  any
          15    33      34  any
          14    36      36  any
           6    39      39  Class java.sql.SQLException
           6    42      43  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      expiredOnly  

  public int getSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 412
            iconst_0
            istore 1 /* size */
        start local 1 // int size
         1: .line 413
            new java.lang.StringBuilder
            dup
            ldc "SELECT COUNT("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionIdCol:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 414
            ldc ") FROM "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " WHERE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 415
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionAppCol: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;
         4: .line 413
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* sizeSql */
        start local 2 // java.lang.String sizeSql
         5: .line 417
            iconst_2
            istore 3 /* numberOfTries */
        start local 3 // int numberOfTries
         6: .line 418
            goto 38
         7: .line 419
      StackMap locals: int java.lang.String int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getConnection:()Ljava/sql/Connection;
            astore 4 /* _conn */
        start local 4 // java.sql.Connection _conn
         8: .line 421
            aload 4 /* _conn */
            ifnonnull 10
         9: .line 422
            iload 1 /* size */
            ireturn
        10: .line 425
      StackMap locals: java.sql.Connection
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
        11: aload 4 /* _conn */
            aload 2 /* sizeSql */
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 7 /* preparedSizeSql */
        start local 7 // java.sql.PreparedStatement preparedSizeSql
        12: .line 426
            aload 7 /* preparedSizeSql */
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getName:()Ljava/lang/String;
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        13: .line 427
            aconst_null
            astore 8
            aconst_null
            astore 9
        14: aload 7 /* preparedSizeSql */
            invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            astore 10 /* rst */
        start local 10 // java.sql.ResultSet rst
        15: .line 428
            aload 10 /* rst */
            invokeinterface java.sql.ResultSet.next:()Z
            ifeq 17
        16: .line 429
            aload 10 /* rst */
            iconst_1
            invokeinterface java.sql.ResultSet.getInt:(I)I
            istore 1 /* size */
        17: .line 432
      StackMap locals: org.apache.catalina.session.DataSourceStore int java.lang.String int java.sql.Connection java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.Throwable java.lang.Throwable java.sql.ResultSet
      StackMap stack:
            iconst_0
            istore 3 /* numberOfTries */
        18: .line 433
            aload 10 /* rst */
            ifnull 24
            aload 10 /* rst */
            invokeinterface java.sql.ResultSet.close:()V
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 8
            aload 10 /* rst */
            ifnull 20
            aload 10 /* rst */
            invokeinterface java.sql.ResultSet.close:()V
        end local 10 // java.sql.ResultSet rst
      StackMap locals:
      StackMap stack:
        20: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 9
            aload 8
            ifnonnull 22
            aload 9
            astore 8
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 8
            aload 9
            if_acmpeq 23
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 8
            athrow
        24: .line 434
      StackMap locals:
      StackMap stack:
            aload 7 /* preparedSizeSql */
            ifnull 36
            aload 7 /* preparedSizeSql */
            invokeinterface java.sql.PreparedStatement.close:()V
            goto 36
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 5
            aload 7 /* preparedSizeSql */
            ifnull 26
            aload 7 /* preparedSizeSql */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 7 // java.sql.PreparedStatement preparedSizeSql
      StackMap locals:
      StackMap stack:
        26: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 6
            aload 5
            ifnonnull 28
            aload 6
            astore 5
            goto 29
      StackMap locals:
      StackMap stack:
        28: aload 5
            aload 6
            if_acmpeq 29
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        29: aload 5
            athrow
      StackMap locals: org.apache.catalina.session.DataSourceStore int java.lang.String int java.sql.Connection
      StackMap stack: java.sql.SQLException
        30: astore 5 /* e */
        start local 5 // java.sql.SQLException e
        31: .line 435
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".SQLException"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* e */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        end local 5 // java.sql.SQLException e
        32: .line 437
            aload 0 /* this */
            aload 4 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
            goto 37
        33: .line 436
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        34: .line 437
            aload 0 /* this */
            aload 4 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        35: .line 438
            aload 11
            athrow
        36: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        37: .line 439
      StackMap locals:
      StackMap stack:
            iinc 3 /* numberOfTries */ -1
        end local 4 // java.sql.Connection _conn
        38: .line 418
      StackMap locals:
      StackMap stack:
            iload 3 /* numberOfTries */
            ifgt 7
        39: .line 441
            iload 1 /* size */
            ireturn
        end local 3 // int numberOfTries
        end local 2 // java.lang.String sizeSql
        end local 1 // int size
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   40     0             this  Lorg/apache/catalina/session/DataSourceStore;
            1   40     1             size  I
            5   40     2          sizeSql  Ljava/lang/String;
            6   40     3    numberOfTries  I
            8   38     4            _conn  Ljava/sql/Connection;
           12   26     7  preparedSizeSql  Ljava/sql/PreparedStatement;
           15   20    10              rst  Ljava/sql/ResultSet;
           31   32     5                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          15    18      19  any
          14    21      21  any
          12    24      25  any
          11    27      27  any
          10    30      30  Class java.sql.SQLException
          10    32      33  any
    Exceptions:
      throws java.io.IOException

  public org.apache.catalina.Session load(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/catalina/Session;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=19, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String id
         0: .line 455
            aconst_null
            astore 2 /* _session */
        start local 2 // org.apache.catalina.session.StandardSession _session
         1: .line 456
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getManager:()Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            astore 3 /* context */
        start local 3 // org.apache.catalina.Context context
         2: .line 457
            aload 3 /* context */
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            astore 4 /* contextLog */
        start local 4 // org.apache.juli.logging.Log contextLog
         3: .line 459
            iconst_2
            istore 5 /* numberOfTries */
        start local 5 // int numberOfTries
         4: .line 460
            new java.lang.StringBuilder
            dup
            ldc "SELECT "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionIdCol: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;
         5: .line 461
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionDataCol:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " FROM "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 462
            ldc " WHERE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionIdCol:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " = ? AND "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 463
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionAppCol: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;
         8: .line 460
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* loadSql */
        start local 6 // java.lang.String loadSql
         9: .line 464
            goto 63
        10: .line 465
      StackMap locals: org.apache.catalina.session.DataSourceStore java.lang.String org.apache.catalina.session.StandardSession org.apache.catalina.Context org.apache.juli.logging.Log int java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getConnection:()Ljava/sql/Connection;
            astore 7 /* _conn */
        start local 7 // java.sql.Connection _conn
        11: .line 466
            aload 7 /* _conn */
            ifnonnull 13
        12: .line 467
            aconst_null
            areturn
        13: .line 470
      StackMap locals: java.sql.Connection
      StackMap stack:
            aload 3 /* context */
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aconst_null
            invokeinterface org.apache.catalina.Context.bind:(ZLjava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 8 /* oldThreadContextCL */
        start local 8 // java.lang.ClassLoader oldThreadContextCL
        14: .line 472
            aconst_null
            astore 9
            aconst_null
            astore 10
        15: aload 7 /* _conn */
            aload 6 /* loadSql */
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 11 /* preparedLoadSql */
        start local 11 // java.sql.PreparedStatement preparedLoadSql
        16: .line 473
            aload 11 /* preparedLoadSql */
            iconst_1
            aload 1 /* id */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        17: .line 474
            aload 11 /* preparedLoadSql */
            iconst_2
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getName:()Ljava/lang/String;
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        18: .line 475
            aconst_null
            astore 12
            aconst_null
            astore 13
        19: aload 11 /* preparedLoadSql */
            invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            astore 14 /* rst */
        start local 14 // java.sql.ResultSet rst
        20: .line 476
            aload 14 /* rst */
            invokeinterface java.sql.ResultSet.next:()Z
            ifeq 37
        21: .line 477
            aconst_null
            astore 15
            aconst_null
            astore 16
        22: .line 478
            aload 0 /* this */
            aload 14 /* rst */
            iconst_2
            invokeinterface java.sql.ResultSet.getBinaryStream:(I)Ljava/io/InputStream;
            invokevirtual org.apache.catalina.session.DataSourceStore.getObjectInputStream:(Ljava/io/InputStream;)Ljava/io/ObjectInputStream;
        23: .line 477
            astore 17 /* ois */
        start local 17 // java.io.ObjectInputStream ois
        24: .line 479
            aload 4 /* contextLog */
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 28
        25: .line 480
            aload 4 /* contextLog */
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
        26: .line 481
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".loading"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* id */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            aastore
        27: .line 480
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        28: .line 484
      StackMap locals: org.apache.catalina.session.DataSourceStore java.lang.String org.apache.catalina.session.StandardSession org.apache.catalina.Context org.apache.juli.logging.Log int java.lang.String java.sql.Connection java.lang.ClassLoader java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.Throwable java.lang.Throwable java.sql.ResultSet java.lang.Throwable java.lang.Throwable java.io.ObjectInputStream
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.createEmptySession:()Lorg/apache/catalina/Session;
            checkcast org.apache.catalina.session.StandardSession
            astore 2 /* _session */
        29: .line 485
            aload 2 /* _session */
            aload 17 /* ois */
            invokevirtual org.apache.catalina.session.StandardSession.readObjectData:(Ljava/io/ObjectInputStream;)V
        30: .line 486
            aload 2 /* _session */
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokevirtual org.apache.catalina.session.StandardSession.setManager:(Lorg/apache/catalina/Manager;)V
        31: .line 487
            aload 17 /* ois */
            ifnull 39
            aload 17 /* ois */
            invokevirtual java.io.ObjectInputStream.close:()V
            goto 39
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 15
            aload 17 /* ois */
            ifnull 33
            aload 17 /* ois */
            invokevirtual java.io.ObjectInputStream.close:()V
        end local 17 // java.io.ObjectInputStream ois
      StackMap locals:
      StackMap stack:
        33: aload 15
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 16
            aload 15
            ifnonnull 35
            aload 16
            astore 15
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 15
            aload 16
            if_acmpeq 36
            aload 15
            aload 16
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        36: aload 15
            athrow
        37: .line 488
      StackMap locals:
      StackMap stack:
            aload 3 /* context */
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 39
        38: .line 489
            aload 4 /* contextLog */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": No persisted data object found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        39: .line 492
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* numberOfTries */
        40: .line 493
            aload 14 /* rst */
            ifnull 46
            aload 14 /* rst */
            invokeinterface java.sql.ResultSet.close:()V
            goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        41: astore 12
            aload 14 /* rst */
            ifnull 42
            aload 14 /* rst */
            invokeinterface java.sql.ResultSet.close:()V
        end local 14 // java.sql.ResultSet rst
      StackMap locals:
      StackMap stack:
        42: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        43: astore 13
            aload 12
            ifnonnull 44
            aload 13
            astore 12
            goto 45
      StackMap locals:
      StackMap stack:
        44: aload 12
            aload 13
            if_acmpeq 45
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        45: aload 12
            athrow
        46: .line 494
      StackMap locals:
      StackMap stack:
            aload 11 /* preparedLoadSql */
            ifnull 60
            aload 11 /* preparedLoadSql */
            invokeinterface java.sql.PreparedStatement.close:()V
            goto 60
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: astore 9
            aload 11 /* preparedLoadSql */
            ifnull 48
            aload 11 /* preparedLoadSql */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 11 // java.sql.PreparedStatement preparedLoadSql
      StackMap locals:
      StackMap stack:
        48: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: astore 10
            aload 9
            ifnonnull 50
            aload 10
            astore 9
            goto 51
      StackMap locals:
      StackMap stack:
        50: aload 9
            aload 10
            if_acmpeq 51
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        51: aload 9
            athrow
      StackMap locals: org.apache.catalina.session.DataSourceStore java.lang.String org.apache.catalina.session.StandardSession org.apache.catalina.Context org.apache.juli.logging.Log int java.lang.String java.sql.Connection java.lang.ClassLoader
      StackMap stack: java.sql.SQLException
        52: astore 9 /* e */
        start local 9 // java.sql.SQLException e
        53: .line 495
            aload 4 /* contextLog */
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".SQLException"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* e */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        end local 9 // java.sql.SQLException e
        54: .line 497
            aload 3 /* context */
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aload 8 /* oldThreadContextCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        55: .line 498
            aload 0 /* this */
            aload 7 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
            goto 62
        56: .line 496
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 18
        57: .line 497
            aload 3 /* context */
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aload 8 /* oldThreadContextCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        58: .line 498
            aload 0 /* this */
            aload 7 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        59: .line 499
            aload 18
            athrow
        60: .line 497
      StackMap locals:
      StackMap stack:
            aload 3 /* context */
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aload 8 /* oldThreadContextCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        61: .line 498
            aload 0 /* this */
            aload 7 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        62: .line 500
      StackMap locals:
      StackMap stack:
            iinc 5 /* numberOfTries */ -1
        end local 8 // java.lang.ClassLoader oldThreadContextCL
        end local 7 // java.sql.Connection _conn
        63: .line 464
      StackMap locals:
      StackMap stack:
            iload 5 /* numberOfTries */
            ifgt 10
        64: .line 502
            aload 2 /* _session */
            areturn
        end local 6 // java.lang.String loadSql
        end local 5 // int numberOfTries
        end local 4 // org.apache.juli.logging.Log contextLog
        end local 3 // org.apache.catalina.Context context
        end local 2 // org.apache.catalina.session.StandardSession _session
        end local 1 // java.lang.String id
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   65     0                this  Lorg/apache/catalina/session/DataSourceStore;
            0   65     1                  id  Ljava/lang/String;
            1   65     2            _session  Lorg/apache/catalina/session/StandardSession;
            2   65     3             context  Lorg/apache/catalina/Context;
            3   65     4          contextLog  Lorg/apache/juli/logging/Log;
            4   65     5       numberOfTries  I
            9   65     6             loadSql  Ljava/lang/String;
           11   63     7               _conn  Ljava/sql/Connection;
           14   63     8  oldThreadContextCL  Ljava/lang/ClassLoader;
           16   48    11     preparedLoadSql  Ljava/sql/PreparedStatement;
           20   42    14                 rst  Ljava/sql/ResultSet;
           24   33    17                 ois  Ljava/io/ObjectInputStream;
           53   54     9                   e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          24    31      32  any
          22    34      34  any
          20    40      41  any
          19    43      43  any
          16    46      47  any
          15    49      49  any
          14    52      52  Class java.sql.SQLException
          14    54      56  any
    Exceptions:
      throws java.lang.ClassNotFoundException, java.io.IOException
    MethodParameters:
      Name  Flags
      id    

  public void remove(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String id
         0: .line 517
            iconst_2
            istore 2 /* numberOfTries */
        start local 2 // int numberOfTries
         1: .line 518
            goto 16
         2: .line 519
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getConnection:()Ljava/sql/Connection;
            astore 3 /* _conn */
        start local 3 // java.sql.Connection _conn
         3: .line 521
            aload 3 /* _conn */
            ifnonnull 5
         4: .line 522
            return
         5: .line 526
      StackMap locals: java.sql.Connection
      StackMap stack:
            aload 0 /* this */
            aload 1 /* id */
            aload 3 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.remove:(Ljava/lang/String;Ljava/sql/Connection;)V
         6: .line 528
            iconst_0
            istore 2 /* numberOfTries */
         7: .line 529
            goto 14
      StackMap locals:
      StackMap stack: java.sql.SQLException
         8: astore 4 /* e */
        start local 4 // java.sql.SQLException e
         9: .line 530
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".SQLException"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* e */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        end local 4 // java.sql.SQLException e
        10: .line 532
            aload 0 /* this */
            aload 3 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
            goto 15
        11: .line 531
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        12: .line 532
            aload 0 /* this */
            aload 3 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        13: .line 533
            aload 5
            athrow
        14: .line 532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        15: .line 534
      StackMap locals:
      StackMap stack:
            iinc 2 /* numberOfTries */ -1
        end local 3 // java.sql.Connection _conn
        16: .line 518
      StackMap locals:
      StackMap stack:
            iload 2 /* numberOfTries */
            ifgt 2
        17: .line 537
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 19
        18: .line 538
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".removing"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* id */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        19: .line 540
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfTries
        end local 1 // java.lang.String id
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Lorg/apache/catalina/session/DataSourceStore;
            0   20     1             id  Ljava/lang/String;
            1   20     2  numberOfTries  I
            3   16     3          _conn  Ljava/sql/Connection;
            9   10     4              e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           5     7       8  Class java.sql.SQLException
           5    10      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      id    

  private void remove(java.lang.String, java.sql.Connection);
    descriptor: (Ljava/lang/String;Ljava/sql/Connection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.lang.String id
        start local 2 // java.sql.Connection _conn
         0: .line 552
            new java.lang.StringBuilder
            dup
            ldc "DELETE FROM "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 553
            ldc " WHERE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionIdCol:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " = ?  AND "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 554
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionAppCol: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;
         3: .line 552
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* removeSql */
        start local 3 // java.lang.String removeSql
         4: .line 555
            aconst_null
            astore 4
            aconst_null
            astore 5
         5: aload 2 /* _conn */
            aload 3 /* removeSql */
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 6 /* preparedRemoveSql */
        start local 6 // java.sql.PreparedStatement preparedRemoveSql
         6: .line 556
            aload 6 /* preparedRemoveSql */
            iconst_1
            aload 1 /* id */
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
         7: .line 557
            aload 6 /* preparedRemoveSql */
            iconst_2
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getName:()Ljava/lang/String;
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
         8: .line 558
            aload 6 /* preparedRemoveSql */
            invokeinterface java.sql.PreparedStatement.execute:()Z
            pop
         9: .line 559
            aload 6 /* preparedRemoveSql */
            ifnull 15
            aload 6 /* preparedRemoveSql */
            invokeinterface java.sql.PreparedStatement.close:()V
            goto 15
      StackMap locals: org.apache.catalina.session.DataSourceStore java.lang.String java.sql.Connection java.lang.String java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
        10: astore 4
            aload 6 /* preparedRemoveSql */
            ifnull 11
            aload 6 /* preparedRemoveSql */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 6 // java.sql.PreparedStatement preparedRemoveSql
      StackMap locals:
      StackMap stack:
        11: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 5
            aload 4
            ifnonnull 13
            aload 5
            astore 4
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 4
            aload 5
            if_acmpeq 14
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 4
            athrow
        15: .line 560
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String removeSql
        end local 2 // java.sql.Connection _conn
        end local 1 // java.lang.String id
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lorg/apache/catalina/session/DataSourceStore;
            0   16     1                 id  Ljava/lang/String;
            0   16     2              _conn  Ljava/sql/Connection;
            4   16     3          removeSql  Ljava/lang/String;
            6   11     6  preparedRemoveSql  Ljava/sql/PreparedStatement;
      Exception table:
        from    to  target  type
           6     9      10  any
           5    12      12  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
       Name  Flags
      id     
      _conn  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 569
            new java.lang.StringBuilder
            dup
            ldc "DELETE FROM "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 570
            ldc " WHERE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionAppCol: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;
         2: .line 569
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* clearSql */
        start local 1 // java.lang.String clearSql
         3: .line 572
            iconst_2
            istore 2 /* numberOfTries */
        start local 2 // int numberOfTries
         4: .line 573
            goto 27
         5: .line 574
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getConnection:()Ljava/sql/Connection;
            astore 3 /* _conn */
        start local 3 // java.sql.Connection _conn
         6: .line 575
            aload 3 /* _conn */
            ifnonnull 8
         7: .line 576
            return
         8: .line 579
      StackMap locals: java.sql.Connection
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
         9: aload 3 /* _conn */
            aload 1 /* clearSql */
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 6 /* preparedClearSql */
        start local 6 // java.sql.PreparedStatement preparedClearSql
        10: .line 580
            aload 6 /* preparedClearSql */
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getName:()Ljava/lang/String;
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        11: .line 581
            aload 6 /* preparedClearSql */
            invokeinterface java.sql.PreparedStatement.execute:()Z
            pop
        12: .line 583
            iconst_0
            istore 2 /* numberOfTries */
        13: .line 584
            aload 6 /* preparedClearSql */
            ifnull 25
            aload 6 /* preparedClearSql */
            invokeinterface java.sql.PreparedStatement.close:()V
            goto 25
      StackMap locals: org.apache.catalina.session.DataSourceStore java.lang.String int java.sql.Connection java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement
      StackMap stack: java.lang.Throwable
        14: astore 4
            aload 6 /* preparedClearSql */
            ifnull 15
            aload 6 /* preparedClearSql */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 6 // java.sql.PreparedStatement preparedClearSql
      StackMap locals:
      StackMap stack:
        15: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 5
            aload 4
            ifnonnull 17
            aload 5
            astore 4
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 4
            aload 5
            if_acmpeq 18
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 4
            athrow
      StackMap locals: org.apache.catalina.session.DataSourceStore java.lang.String int java.sql.Connection
      StackMap stack: java.sql.SQLException
        19: astore 4 /* e */
        start local 4 // java.sql.SQLException e
        20: .line 585
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".SQLException"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* e */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        end local 4 // java.sql.SQLException e
        21: .line 587
            aload 0 /* this */
            aload 3 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
            goto 26
        22: .line 586
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        23: .line 587
            aload 0 /* this */
            aload 3 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        24: .line 588
            aload 7
            athrow
        25: .line 587
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        26: .line 589
      StackMap locals:
      StackMap stack:
            iinc 2 /* numberOfTries */ -1
        end local 3 // java.sql.Connection _conn
        27: .line 573
      StackMap locals:
      StackMap stack:
            iload 2 /* numberOfTries */
            ifgt 5
        28: .line 591
            return
        end local 2 // int numberOfTries
        end local 1 // java.lang.String clearSql
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   29     0              this  Lorg/apache/catalina/session/DataSourceStore;
            3   29     1          clearSql  Ljava/lang/String;
            4   29     2     numberOfTries  I
            6   27     3             _conn  Ljava/sql/Connection;
           10   15     6  preparedClearSql  Ljava/sql/PreparedStatement;
           20   21     4                 e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          10    13      14  any
           9    16      16  any
           8    19      19  Class java.sql.SQLException
           8    21      22  any
    Exceptions:
      throws java.io.IOException

  public void save(org.apache.catalina.Session);
    descriptor: (Lorg/apache/catalina/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // org.apache.catalina.Session session
         0: .line 601
            aconst_null
            astore 2 /* bos */
        start local 2 // java.io.ByteArrayOutputStream bos
         1: .line 602
            new java.lang.StringBuilder
            dup
            ldc "INSERT INTO "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable: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;
         2: .line 603
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionIdCol: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.session.DataSourceStore.sessionAppCol: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;
         3: .line 604
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionDataCol: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.session.DataSourceStore.sessionValidCol:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 605
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionMaxInactiveCol: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;
         5: .line 606
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionLastAccessedCol:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 607
            ldc ") VALUES (?, ?, ?, ?, ?, ?)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 602
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* saveSql */
        start local 3 // java.lang.String saveSql
         8: .line 609
            aload 1 /* session */
            dup
            astore 4
            monitorenter
         9: .line 610
            iconst_2
            istore 5 /* numberOfTries */
        start local 5 // int numberOfTries
        10: .line 611
            goto 69
        11: .line 612
      StackMap locals: org.apache.catalina.session.DataSourceStore org.apache.catalina.Session java.io.ByteArrayOutputStream java.lang.String org.apache.catalina.Session int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getConnection:()Ljava/sql/Connection;
            astore 6 /* _conn */
        start local 6 // java.sql.Connection _conn
        12: .line 613
            aload 6 /* _conn */
            ifnonnull 15
        13: .line 614
            aload 4
            monitorexit
        14: return
        15: .line 621
      StackMap locals: java.sql.Connection
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            invokeinterface org.apache.catalina.Session.getIdInternal:()Ljava/lang/String;
            aload 6 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.remove:(Ljava/lang/String;Ljava/sql/Connection;)V
        16: .line 623
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 2 /* bos */
        17: .line 624
            aconst_null
            astore 7
            aconst_null
            astore 8
        18: .line 625
            new java.io.ObjectOutputStream
            dup
            new java.io.BufferedOutputStream
            dup
            aload 2 /* bos */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
            invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
        19: .line 624
            astore 9 /* oos */
        start local 9 // java.io.ObjectOutputStream oos
        20: .line 626
            aload 1 /* session */
            checkcast org.apache.catalina.session.StandardSession
            aload 9 /* oos */
            invokevirtual org.apache.catalina.session.StandardSession.writeObjectData:(Ljava/io/ObjectOutputStream;)V
        21: .line 627
            aload 9 /* oos */
            ifnull 27
            aload 9 /* oos */
            invokevirtual java.io.ObjectOutputStream.close:()V
            goto 27
      StackMap locals: org.apache.catalina.session.DataSourceStore org.apache.catalina.Session java.io.ByteArrayOutputStream java.lang.String org.apache.catalina.Session int java.sql.Connection java.lang.Throwable java.lang.Throwable java.io.ObjectOutputStream
      StackMap stack: java.lang.Throwable
        22: astore 7
            aload 9 /* oos */
            ifnull 23
            aload 9 /* oos */
            invokevirtual java.io.ObjectOutputStream.close:()V
        end local 9 // java.io.ObjectOutputStream oos
      StackMap locals:
      StackMap stack:
        23: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 8
            aload 7
            ifnonnull 25
            aload 8
            astore 7
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 7
            aload 8
            if_acmpeq 26
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: aload 7
            athrow
        27: .line 628
      StackMap locals:
      StackMap stack:
            aload 2 /* bos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 7 /* obs */
        start local 7 // byte[] obs
        28: .line 629
            aload 7 /* obs */
            arraylength
            istore 8 /* size */
        start local 8 // int size
        29: .line 630
            aconst_null
            astore 9
            aconst_null
            astore 10
        30: new java.io.ByteArrayInputStream
            dup
            aload 7 /* obs */
            iconst_0
            iload 8 /* size */
            invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
            astore 11 /* bis */
        start local 11 // java.io.ByteArrayInputStream bis
        31: .line 631
            new java.io.BufferedInputStream
            dup
            aload 11 /* bis */
            iload 8 /* size */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;I)V
            astore 12 /* in */
        start local 12 // java.io.InputStream in
        32: .line 632
            aload 6 /* _conn */
            aload 3 /* saveSql */
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 13 /* preparedSaveSql */
        start local 13 // java.sql.PreparedStatement preparedSaveSql
        33: .line 633
            aload 13 /* preparedSaveSql */
            iconst_1
            aload 1 /* session */
            invokeinterface org.apache.catalina.Session.getIdInternal:()Ljava/lang/String;
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        34: .line 634
            aload 13 /* preparedSaveSql */
            iconst_2
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getName:()Ljava/lang/String;
            invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        35: .line 635
            aload 13 /* preparedSaveSql */
            iconst_3
            aload 12 /* in */
            iload 8 /* size */
            invokeinterface java.sql.PreparedStatement.setBinaryStream:(ILjava/io/InputStream;I)V
        36: .line 636
            aload 13 /* preparedSaveSql */
            iconst_4
            aload 1 /* session */
            invokeinterface org.apache.catalina.Session.isValid:()Z
            ifeq 37
            ldc "1"
            goto 38
      StackMap locals: org.apache.catalina.session.DataSourceStore org.apache.catalina.Session java.io.ByteArrayOutputStream java.lang.String org.apache.catalina.Session int java.sql.Connection byte[] int java.lang.Throwable java.lang.Throwable java.io.ByteArrayInputStream java.io.InputStream java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int
        37: ldc "0"
      StackMap locals: org.apache.catalina.session.DataSourceStore org.apache.catalina.Session java.io.ByteArrayOutputStream java.lang.String org.apache.catalina.Session int java.sql.Connection byte[] int java.lang.Throwable java.lang.Throwable java.io.ByteArrayInputStream java.io.InputStream java.sql.PreparedStatement
      StackMap stack: java.sql.PreparedStatement int java.lang.String
        38: invokeinterface java.sql.PreparedStatement.setString:(ILjava/lang/String;)V
        39: .line 637
            aload 13 /* preparedSaveSql */
            iconst_5
            aload 1 /* session */
            invokeinterface org.apache.catalina.Session.getMaxInactiveInterval:()I
            invokeinterface java.sql.PreparedStatement.setInt:(II)V
        40: .line 638
            aload 13 /* preparedSaveSql */
            bipush 6
            aload 1 /* session */
            invokeinterface org.apache.catalina.Session.getLastAccessedTime:()J
            invokeinterface java.sql.PreparedStatement.setLong:(IJ)V
        41: .line 639
            aload 13 /* preparedSaveSql */
            invokeinterface java.sql.PreparedStatement.execute:()Z
            pop
        42: .line 641
            iconst_0
            istore 5 /* numberOfTries */
        43: .line 642
            aload 13 /* preparedSaveSql */
            ifnull 46
            aload 13 /* preparedSaveSql */
            invokeinterface java.sql.PreparedStatement.close:()V
            goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        44: astore 9
            aload 13 /* preparedSaveSql */
            ifnull 45
            aload 13 /* preparedSaveSql */
            invokeinterface java.sql.PreparedStatement.close:()V
        end local 13 // java.sql.PreparedStatement preparedSaveSql
      StackMap locals:
      StackMap stack:
        45: aload 9
            athrow
      StackMap locals:
      StackMap stack:
        46: aload 12 /* in */
            ifnull 51
            aload 12 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 51
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: astore 10
            aload 9
            ifnonnull 48
            aload 10
            astore 9
            goto 49
      StackMap locals:
      StackMap stack:
        48: aload 9
            aload 10
            if_acmpeq 49
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        49: aload 12 /* in */
            ifnull 50
            aload 12 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 12 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
        50: aload 9
            athrow
      StackMap locals:
      StackMap stack:
        51: aload 11 /* bis */
            ifnull 67
            aload 11 /* bis */
            invokevirtual java.io.ByteArrayInputStream.close:()V
            goto 67
      StackMap locals:
      StackMap stack: java.lang.Throwable
        52: astore 10
            aload 9
            ifnonnull 53
            aload 10
            astore 9
            goto 54
      StackMap locals:
      StackMap stack:
        53: aload 9
            aload 10
            if_acmpeq 54
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        54: aload 11 /* bis */
            ifnull 55
            aload 11 /* bis */
            invokevirtual java.io.ByteArrayInputStream.close:()V
        end local 11 // java.io.ByteArrayInputStream bis
      StackMap locals:
      StackMap stack:
        55: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        56: astore 10
            aload 9
            ifnonnull 57
            aload 10
            astore 9
            goto 58
      StackMap locals:
      StackMap stack:
        57: aload 9
            aload 10
            if_acmpeq 58
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        58: aload 9
            athrow
        end local 8 // int size
        end local 7 // byte[] obs
        59: .line 643
      StackMap locals: org.apache.catalina.session.DataSourceStore org.apache.catalina.Session java.io.ByteArrayOutputStream java.lang.String org.apache.catalina.Session int java.sql.Connection
      StackMap stack: java.sql.SQLException
            astore 7 /* e */
        start local 7 // java.sql.SQLException e
        60: .line 644
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".SQLException"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* e */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        end local 7 // java.sql.SQLException e
        61: .line 648
            aload 0 /* this */
            aload 6 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
            goto 68
        62: .line 645
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        63: .line 648
            aload 0 /* this */
            aload 6 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
            goto 68
        64: .line 647
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        65: .line 648
            aload 0 /* this */
            aload 6 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        66: .line 649
            aload 14
            athrow
        67: .line 648
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* _conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.release:(Ljava/sql/Connection;)V
        68: .line 650
      StackMap locals:
      StackMap stack:
            iinc 5 /* numberOfTries */ -1
        end local 6 // java.sql.Connection _conn
        69: .line 611
      StackMap locals:
      StackMap stack:
            iload 5 /* numberOfTries */
            ifgt 11
        end local 5 // int numberOfTries
        70: .line 609
            aload 4
            monitorexit
        71: goto 74
      StackMap locals: org.apache.catalina.session.DataSourceStore org.apache.catalina.Session java.io.ByteArrayOutputStream java.lang.String org.apache.catalina.Session
      StackMap stack: java.lang.Throwable
        72: aload 4
            monitorexit
        73: athrow
        74: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 78
        75: .line 655
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".saving"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        76: .line 656
            aload 1 /* session */
            invokeinterface org.apache.catalina.Session.getIdInternal:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.sessionTable:Ljava/lang/String;
            aastore
        77: .line 655
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        78: .line 658
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String saveSql
        end local 2 // java.io.ByteArrayOutputStream bos
        end local 1 // org.apache.catalina.Session session
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   79     0             this  Lorg/apache/catalina/session/DataSourceStore;
            0   79     1          session  Lorg/apache/catalina/Session;
            1   79     2              bos  Ljava/io/ByteArrayOutputStream;
            8   79     3          saveSql  Ljava/lang/String;
           10   70     5    numberOfTries  I
           12   69     6            _conn  Ljava/sql/Connection;
           20   23     9              oos  Ljava/io/ObjectOutputStream;
           28   59     7              obs  [B
           29   59     8             size  I
           31   55    11              bis  Ljava/io/ByteArrayInputStream;
           32   50    12               in  Ljava/io/InputStream;
           33   45    13  preparedSaveSql  Ljava/sql/PreparedStatement;
           60   61     7                e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          20    21      22  any
          18    24      24  any
          33    43      44  any
          32    46      47  any
          31    51      52  any
          30    56      56  any
          15    59      59  Class java.sql.SQLException
          15    59      62  Class java.io.IOException
          15    61      64  any
          62    63      64  any
           9    14      72  any
          15    71      72  any
          72    73      72  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      session  

  protected java.sql.Connection getConnection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 671
            aconst_null
            astore 1 /* conn */
        start local 1 // java.sql.Connection conn
         1: .line 673
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.open:()Ljava/sql/Connection;
            astore 1 /* conn */
         2: .line 674
            aload 1 /* conn */
            ifnull 3
            aload 1 /* conn */
            invokeinterface java.sql.Connection.isClosed:()Z
            ifeq 12
         3: .line 675
      StackMap locals: java.sql.Connection
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".checkConnectionDBClosed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
         4: .line 676
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.open:()Ljava/sql/Connection;
            astore 1 /* conn */
         5: .line 677
            aload 1 /* conn */
            ifnull 6
            aload 1 /* conn */
            invokeinterface java.sql.Connection.isClosed:()Z
            ifeq 12
         6: .line 678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".checkConnectionDBReOpenFail"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
         7: .line 681
            goto 12
      StackMap locals:
      StackMap stack: java.sql.SQLException
         8: astore 2 /* ex */
        start local 2 // java.sql.SQLException ex
         9: .line 682
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".checkConnectionSQLException"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 683
            aload 2 /* ex */
            invokevirtual java.sql.SQLException.toString:()Ljava/lang/String;
            aastore
        11: .line 682
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        end local 2 // java.sql.SQLException ex
        12: .line 686
      StackMap locals:
      StackMap stack:
            aload 1 /* conn */
            areturn
        end local 1 // java.sql.Connection conn
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/apache/catalina/session/DataSourceStore;
            1   13     1  conn  Ljava/sql/Connection;
            9   12     2    ex  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           1     7       8  Class java.sql.SQLException

  protected java.sql.Connection open();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // org.apache.catalina.session.DataSourceStore this
         0: .line 698
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.dataSourceName:Ljava/lang/String;
            ifnull 24
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.dataSource:Ljavax/sql/DataSource;
            ifnonnull 24
         1: .line 699
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getManager:()Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            astore 1 /* context */
        start local 1 // org.apache.catalina.Context context
         2: .line 700
            aconst_null
            astore 2 /* oldThreadContextCL */
        start local 2 // java.lang.ClassLoader oldThreadContextCL
         3: .line 701
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.localDataSource:Z
            ifeq 5
         4: .line 702
            aload 1 /* context */
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aconst_null
            invokeinterface org.apache.catalina.Context.bind:(ZLjava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 2 /* oldThreadContextCL */
         5: .line 707
      StackMap locals: org.apache.catalina.Context java.lang.ClassLoader
      StackMap stack:
            new javax.naming.InitialContext
            dup
            invokespecial javax.naming.InitialContext.<init>:()V
            astore 3 /* initCtx */
        start local 3 // javax.naming.Context initCtx
         6: .line 708
            aload 3 /* initCtx */
            ldc "java:comp/env"
            invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.naming.Context
            astore 4 /* envCtx */
        start local 4 // javax.naming.Context envCtx
         7: .line 709
            aload 0 /* this */
            aload 4 /* envCtx */
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.dataSourceName:Ljava/lang/String;
            invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.sql.DataSource
            putfield org.apache.catalina.session.DataSourceStore.dataSource:Ljavax/sql/DataSource;
        end local 4 // javax.naming.Context envCtx
        end local 3 // javax.naming.Context initCtx
         8: .line 710
            goto 22
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         9: astore 4 /* e */
        start local 4 // javax.naming.NamingException e
        10: .line 711
            aload 1 /* context */
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
        11: .line 712
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".wrongDataSource"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 713
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.dataSourceName:Ljava/lang/String;
            aastore
        13: .line 712
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        14: .line 713
            aload 4 /* e */
        15: .line 711
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // javax.naming.NamingException e
        16: .line 715
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.localDataSource:Z
            ifeq 24
        17: .line 716
            aload 1 /* context */
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aload 2 /* oldThreadContextCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
            goto 24
        18: .line 714
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        19: .line 715
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.localDataSource:Z
            ifeq 21
        20: .line 716
            aload 1 /* context */
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aload 2 /* oldThreadContextCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        21: .line 718
      StackMap locals: org.apache.catalina.session.DataSourceStore org.apache.catalina.Context java.lang.ClassLoader top top java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        22: .line 715
      StackMap locals: org.apache.catalina.session.DataSourceStore org.apache.catalina.Context java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.localDataSource:Z
            ifeq 24
        23: .line 716
            aload 1 /* context */
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aload 2 /* oldThreadContextCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        end local 2 // java.lang.ClassLoader oldThreadContextCL
        end local 1 // org.apache.catalina.Context context
        24: .line 721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.dataSource:Ljavax/sql/DataSource;
            ifnull 26
        25: .line 722
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.dataSource:Ljavax/sql/DataSource;
            invokeinterface javax.sql.DataSource.getConnection:()Ljava/sql/Connection;
            areturn
        26: .line 724
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".missingDataSource"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   27     0                this  Lorg/apache/catalina/session/DataSourceStore;
            2   24     1             context  Lorg/apache/catalina/Context;
            3   24     2  oldThreadContextCL  Ljava/lang/ClassLoader;
            6    8     3             initCtx  Ljavax/naming/Context;
            7    8     4              envCtx  Ljavax/naming/Context;
           10   16     4                   e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           5     8       9  Class javax.naming.NamingException
           5    16      18  any
    Exceptions:
      throws java.sql.SQLException

  protected void close(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.sql.Connection dbConnection
         0: .line 736
            aload 1 /* dbConnection */
            ifnonnull 2
         1: .line 737
            return
         2: .line 741
      StackMap locals:
      StackMap stack:
            aload 1 /* dbConnection */
            invokeinterface java.sql.Connection.getAutoCommit:()Z
            ifne 7
         3: .line 742
            aload 1 /* dbConnection */
            invokeinterface java.sql.Connection.commit:()V
         4: .line 744
            goto 7
      StackMap locals:
      StackMap stack: java.sql.SQLException
         5: astore 2 /* e */
        start local 2 // java.sql.SQLException e
         6: .line 745
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".commitSQLException"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 2 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 2 // java.sql.SQLException e
         7: .line 750
      StackMap locals:
      StackMap stack:
            aload 1 /* dbConnection */
            invokeinterface java.sql.Connection.close:()V
         8: .line 751
            goto 11
      StackMap locals:
      StackMap stack: java.sql.SQLException
         9: astore 2 /* e */
        start local 2 // java.sql.SQLException e
        10: .line 752
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.manager:Lorg/apache/catalina/Manager;
            invokeinterface org.apache.catalina.Manager.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.session.DataSourceStore.sm:Lorg/apache/tomcat/util/res/StringManager;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.session.DataSourceStore.getStoreName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".close"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* e */
            invokevirtual java.sql.SQLException.toString:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        end local 2 // java.sql.SQLException e
        11: .line 754
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.sql.Connection dbConnection
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lorg/apache/catalina/session/DataSourceStore;
            0   12     1  dbConnection  Ljava/sql/Connection;
            6    7     2             e  Ljava/sql/SQLException;
           10   11     2             e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           2     4       5  Class java.sql.SQLException
           7     8       9  Class java.sql.SQLException
    MethodParameters:
              Name  Flags
      dbConnection  

  protected void release(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.session.DataSourceStore this
        start local 1 // java.sql.Connection conn
         0: .line 763
            aload 0 /* this */
            getfield org.apache.catalina.session.DataSourceStore.dataSource:Ljavax/sql/DataSource;
            ifnull 2
         1: .line 764
            aload 0 /* this */
            aload 1 /* conn */
            invokevirtual org.apache.catalina.session.DataSourceStore.close:(Ljava/sql/Connection;)V
         2: .line 766
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.sql.Connection conn
        end local 0 // org.apache.catalina.session.DataSourceStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/session/DataSourceStore;
            0    3     1  conn  Ljava/sql/Connection;
    MethodParameters:
      Name  Flags
      conn  
}
SourceFile: "DataSourceStore.java"