public class org.apache.commons.dbcp.PoolableConnection extends org.apache.commons.dbcp.DelegatingConnection
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.dbcp.PoolableConnection
  super_class: org.apache.commons.dbcp.DelegatingConnection
{
  protected org.apache.commons.pool.ObjectPool _pool;
    descriptor: Lorg/apache/commons/pool/ObjectPool;
    flags: (0x0004) ACC_PROTECTED

  public void <init>(java.sql.Connection, org.apache.commons.pool.ObjectPool);
    descriptor: (Ljava/sql/Connection;Lorg/apache/commons/pool/ObjectPool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.commons.dbcp.PoolableConnection this
        start local 1 // java.sql.Connection conn
        start local 2 // org.apache.commons.pool.ObjectPool pool
         0: .line 45
            aload 0 /* this */
            aload 1 /* conn */
            invokespecial org.apache.commons.dbcp.DelegatingConnection.<init>:(Ljava/sql/Connection;)V
         1: .line 37
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.dbcp.PoolableConnection._pool:Lorg/apache/commons/pool/ObjectPool;
         2: .line 46
            aload 0 /* this */
            aload 2 /* pool */
            putfield org.apache.commons.dbcp.PoolableConnection._pool:Lorg/apache/commons/pool/ObjectPool;
         3: .line 47
            return
        end local 2 // org.apache.commons.pool.ObjectPool pool
        end local 1 // java.sql.Connection conn
        end local 0 // org.apache.commons.dbcp.PoolableConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/dbcp/PoolableConnection;
            0    4     1  conn  Ljava/sql/Connection;
            0    4     2  pool  Lorg/apache/commons/pool/ObjectPool;
    MethodParameters:
      Name  Flags
      conn  
      pool  

  public void <init>(java.sql.Connection, org.apache.commons.pool.ObjectPool, org.apache.commons.dbcp.AbandonedConfig);
    descriptor: (Ljava/sql/Connection;Lorg/apache/commons/pool/ObjectPool;Lorg/apache/commons/dbcp/AbandonedConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.commons.dbcp.PoolableConnection this
        start local 1 // java.sql.Connection conn
        start local 2 // org.apache.commons.pool.ObjectPool pool
        start local 3 // org.apache.commons.dbcp.AbandonedConfig config
         0: .line 56
            aload 0 /* this */
            aload 1 /* conn */
            aload 3 /* config */
            invokespecial org.apache.commons.dbcp.DelegatingConnection.<init>:(Ljava/sql/Connection;Lorg/apache/commons/dbcp/AbandonedConfig;)V
         1: .line 37
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.dbcp.PoolableConnection._pool:Lorg/apache/commons/pool/ObjectPool;
         2: .line 57
            aload 0 /* this */
            aload 2 /* pool */
            putfield org.apache.commons.dbcp.PoolableConnection._pool:Lorg/apache/commons/pool/ObjectPool;
         3: .line 58
            return
        end local 3 // org.apache.commons.dbcp.AbandonedConfig config
        end local 2 // org.apache.commons.pool.ObjectPool pool
        end local 1 // java.sql.Connection conn
        end local 0 // org.apache.commons.dbcp.PoolableConnection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/commons/dbcp/PoolableConnection;
            0    4     1    conn  Ljava/sql/Connection;
            0    4     2    pool  Lorg/apache/commons/pool/ObjectPool;
            0    4     3  config  Lorg/apache/commons/dbcp/AbandonedConfig;
    MethodParameters:
        Name  Flags
      conn    
      pool    
      config  

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.commons.dbcp.PoolableConnection this
         0: .line 65
            aload 0 /* this */
            getfield org.apache.commons.dbcp.PoolableConnection._closed:Z
            ifeq 2
         1: .line 67
            return
         2: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.dbcp.PoolableConnection._conn:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.isClosed:()Z
            istore 1 /* isUnderlyingConectionClosed */
        start local 1 // boolean isUnderlyingConectionClosed
         3: .line 73
            goto 12
        end local 1 // boolean isUnderlyingConectionClosed
      StackMap locals:
      StackMap stack: java.sql.SQLException
         4: astore 2 /* e */
        start local 2 // java.sql.SQLException e
         5: .line 75
            aload 0 /* this */
            getfield org.apache.commons.dbcp.PoolableConnection._pool:Lorg/apache/commons/pool/ObjectPool;
            aload 0 /* this */
            invokeinterface org.apache.commons.pool.ObjectPool.invalidateObject:(Ljava/lang/Object;)V
         6: .line 76
            goto 11
      StackMap locals: org.apache.commons.dbcp.PoolableConnection top java.sql.SQLException
      StackMap stack: java.lang.IllegalStateException
         7: pop
         8: .line 78
            aload 0 /* this */
            invokevirtual org.apache.commons.dbcp.PoolableConnection.passivate:()V
         9: .line 79
            aload 0 /* this */
            invokevirtual org.apache.commons.dbcp.PoolableConnection.getInnermostDelegate:()Ljava/sql/Connection;
            invokeinterface java.sql.Connection.close:()V
            goto 11
        10: .line 80
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        11: .line 83
      StackMap locals:
      StackMap stack:
            new java.sql.SQLException
            dup
            ldc "Cannot close connection (isClosed check failed)"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.sql.SQLException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast java.sql.SQLException
            athrow
        end local 2 // java.sql.SQLException e
        start local 1 // boolean isUnderlyingConectionClosed
        12: .line 86
      StackMap locals: org.apache.commons.dbcp.PoolableConnection int
      StackMap stack:
            iload 1 /* isUnderlyingConectionClosed */
            ifne 24
        13: .line 90
            aload 0 /* this */
            getfield org.apache.commons.dbcp.PoolableConnection._pool:Lorg/apache/commons/pool/ObjectPool;
            aload 0 /* this */
            invokeinterface org.apache.commons.pool.ObjectPool.returnObject:(Ljava/lang/Object;)V
        14: .line 91
            goto 31
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        15: pop
        16: .line 93
            aload 0 /* this */
            invokevirtual org.apache.commons.dbcp.PoolableConnection.passivate:()V
        17: .line 94
            aload 0 /* this */
            invokevirtual org.apache.commons.dbcp.PoolableConnection.getInnermostDelegate:()Ljava/sql/Connection;
            invokeinterface java.sql.Connection.close:()V
            goto 31
        18: .line 95
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 2 /* e */
        start local 2 // java.sql.SQLException e
        19: .line 96
            aload 2 /* e */
            athrow
        end local 2 // java.sql.SQLException e
        20: .line 97
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
        21: .line 98
            aload 2 /* e */
            athrow
        end local 2 // java.lang.RuntimeException e
        22: .line 99
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        23: .line 100
            new java.sql.SQLException
            dup
            ldc "Cannot close connection (return to pool failed)"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.sql.SQLException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast java.sql.SQLException
            athrow
        end local 2 // java.lang.Exception e
        24: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.dbcp.PoolableConnection._pool:Lorg/apache/commons/pool/ObjectPool;
            aload 0 /* this */
            invokeinterface org.apache.commons.pool.ObjectPool.invalidateObject:(Ljava/lang/Object;)V
        25: .line 107
            goto 30
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        26: pop
        27: .line 109
            aload 0 /* this */
            invokevirtual org.apache.commons.dbcp.PoolableConnection.passivate:()V
        28: .line 110
            aload 0 /* this */
            invokevirtual org.apache.commons.dbcp.PoolableConnection.getInnermostDelegate:()Ljava/sql/Connection;
            invokeinterface java.sql.Connection.close:()V
            goto 30
        29: .line 111
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        30: .line 114
      StackMap locals:
      StackMap stack:
            new java.sql.SQLException
            dup
            ldc "Already closed."
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 116
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean isUnderlyingConectionClosed
        end local 0 // org.apache.commons.dbcp.PoolableConnection this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   32     0                         this  Lorg/apache/commons/dbcp/PoolableConnection;
            3    4     1  isUnderlyingConectionClosed  Z
           12   32     1  isUnderlyingConectionClosed  Z
            5   12     2                            e  Ljava/sql/SQLException;
           19   20     2                            e  Ljava/sql/SQLException;
           21   22     2                            e  Ljava/lang/RuntimeException;
           23   24     2                            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.sql.SQLException
           5     6       7  Class java.lang.IllegalStateException
           5     6      10  Class java.lang.Exception
          13    14      15  Class java.lang.IllegalStateException
          13    14      18  Class java.sql.SQLException
          13    14      20  Class java.lang.RuntimeException
          13    14      22  Class java.lang.Exception
          24    25      26  Class java.lang.IllegalStateException
          24    25      29  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException

  public void reallyClose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.dbcp.PoolableConnection this
         0: .line 122
            aload 0 /* this */
            invokespecial org.apache.commons.dbcp.DelegatingConnection.close:()V
         1: .line 123
            return
        end local 0 // org.apache.commons.dbcp.PoolableConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/dbcp/PoolableConnection;
    Exceptions:
      throws java.sql.SQLException
}
SourceFile: "PoolableConnection.java"