public class org.springframework.jdbc.datasource.SingleConnectionDataSource extends org.springframework.jdbc.datasource.DriverManagerDataSource implements org.springframework.jdbc.datasource.SmartDataSource, org.springframework.beans.factory.DisposableBean
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.jdbc.datasource.SingleConnectionDataSource
  super_class: org.springframework.jdbc.datasource.DriverManagerDataSource
{
  private boolean suppressClose;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Boolean autoCommit;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.sql.Connection target;
    descriptor: Ljava/sql/Connection;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.sql.Connection connection;
    descriptor: Ljava/sql/Connection;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final java.lang.Object connectionMonitor;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
         0: .line 79
            aload 0 /* this */
            invokespecial org.springframework.jdbc.datasource.DriverManagerDataSource.<init>:()V
         1: .line 73
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
         2: .line 80
            return
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;

  public void <init>(java.lang.String, java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // java.lang.String url
        start local 2 // java.lang.String username
        start local 3 // java.lang.String password
        start local 4 // boolean suppressClose
         0: .line 93
            aload 0 /* this */
            aload 1 /* url */
            aload 2 /* username */
            aload 3 /* password */
            invokespecial org.springframework.jdbc.datasource.DriverManagerDataSource.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 73
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
         2: .line 94
            aload 0 /* this */
            iload 4 /* suppressClose */
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.suppressClose:Z
         3: .line 95
            return
        end local 4 // boolean suppressClose
        end local 3 // java.lang.String password
        end local 2 // java.lang.String username
        end local 1 // java.lang.String url
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    4     1            url  Ljava/lang/String;
            0    4     2       username  Ljava/lang/String;
            0    4     3       password  Ljava/lang/String;
            0    4     4  suppressClose  Z
    MethodParameters:
               Name  Flags
      url            
      username       
      password       
      suppressClose  

  public void <init>(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // java.lang.String url
        start local 2 // boolean suppressClose
         0: .line 106
            aload 0 /* this */
            aload 1 /* url */
            invokespecial org.springframework.jdbc.datasource.DriverManagerDataSource.<init>:(Ljava/lang/String;)V
         1: .line 73
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
         2: .line 107
            aload 0 /* this */
            iload 2 /* suppressClose */
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.suppressClose:Z
         3: .line 108
            return
        end local 2 // boolean suppressClose
        end local 1 // java.lang.String url
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    4     1            url  Ljava/lang/String;
            0    4     2  suppressClose  Z
    MethodParameters:
               Name  Flags
      url            
      suppressClose  

  public void <init>(java.sql.Connection, boolean);
    descriptor: (Ljava/sql/Connection;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // java.sql.Connection target
        start local 2 // boolean suppressClose
         0: .line 118
            aload 0 /* this */
            invokespecial org.springframework.jdbc.datasource.DriverManagerDataSource.<init>:()V
         1: .line 73
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
         2: .line 119
            aload 1 /* target */
            ldc "Connection must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 120
            aload 0 /* this */
            aload 1 /* target */
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
         4: .line 121
            aload 0 /* this */
            iload 2 /* suppressClose */
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.suppressClose:Z
         5: .line 122
            aload 0 /* this */
            iload 2 /* suppressClose */
            ifeq 6
            aload 0 /* this */
            aload 1 /* target */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getCloseSuppressingConnectionProxy:(Ljava/sql/Connection;)Ljava/sql/Connection;
            goto 7
      StackMap locals: org.springframework.jdbc.datasource.SingleConnectionDataSource java.sql.Connection int
      StackMap stack: org.springframework.jdbc.datasource.SingleConnectionDataSource
         6: aload 1 /* target */
      StackMap locals: org.springframework.jdbc.datasource.SingleConnectionDataSource java.sql.Connection int
      StackMap stack: org.springframework.jdbc.datasource.SingleConnectionDataSource java.sql.Connection
         7: putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connection:Ljava/sql/Connection;
         8: .line 123
            return
        end local 2 // boolean suppressClose
        end local 1 // java.sql.Connection target
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    9     1         target  Ljava/sql/Connection;
            0    9     2  suppressClose  Z
    MethodParameters:
               Name  Flags
      target         
      suppressClose  

  public void setSuppressClose(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // boolean suppressClose
         0: .line 131
            aload 0 /* this */
            iload 1 /* suppressClose */
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.suppressClose:Z
         1: .line 132
            return
        end local 1 // boolean suppressClose
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    2     1  suppressClose  Z
    MethodParameters:
               Name  Flags
      suppressClose  

  protected boolean isSuppressClose();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
         0: .line 139
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.suppressClose:Z
            ireturn
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;

  public void setAutoCommit(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // boolean autoCommit
         0: .line 146
            aload 0 /* this */
            iload 1 /* autoCommit */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.autoCommit:Ljava/lang/Boolean;
         1: .line 147
            return
        end local 1 // boolean autoCommit
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    2     1  autoCommit  Z
    MethodParameters:
            Name  Flags
      autoCommit  

  protected java.lang.Boolean getAutoCommitValue();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
         0: .line 155
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.autoCommit:Ljava/lang/Boolean;
            areturn
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.sql.Connection getConnection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
         0: .line 161
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 162
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connection:Ljava/sql/Connection;
            ifnonnull 3
         2: .line 164
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.initConnection:()V
         3: .line 166
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connection:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.isClosed:()Z
            ifeq 7
         4: .line 167
            new java.sql.SQLException
            dup
         5: .line 168
            ldc "Connection was closed in SingleConnectionDataSource. Check that user code checks shouldClose() before closing Connections, or set 'suppressClose' to 'true'"
         6: .line 167
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connection:Ljava/sql/Connection;
            aload 1
            monitorexit
         8: areturn
         9: .line 161
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Exceptions:
      throws java.sql.SQLException

  public java.sql.Connection getConnection(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // java.lang.String username
        start local 2 // java.lang.String password
         0: .line 182
            aload 1 /* username */
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getUsername:()Ljava/lang/String;
            invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 3
         1: .line 183
            aload 2 /* password */
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getPassword:()Ljava/lang/String;
            invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 3
         2: .line 184
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getConnection:()Ljava/sql/Connection;
            areturn
         3: .line 187
      StackMap locals:
      StackMap stack:
            new java.sql.SQLException
            dup
            ldc "SingleConnectionDataSource does not support custom username and password"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String password
        end local 1 // java.lang.String username
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    4     1  username  Ljava/lang/String;
            0    4     2  password  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
          Name  Flags
      username  
      password  

  public boolean shouldClose(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // java.sql.Connection con
         0: .line 196
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 197
            aload 1 /* con */
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connection:Ljava/sql/Connection;
            if_acmpeq 2
            aload 1 /* con */
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
            if_acmpeq 2
            iconst_1
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: aload 2
            monitorexit
         4: ireturn
         5: .line 196
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // java.sql.Connection con
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    7     1   con  Ljava/sql/Connection;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
      Name  Flags
      con   

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
         0: .line 209
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 210
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.closeConnection:()V
         2: .line 209
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: org.springframework.jdbc.datasource.SingleConnectionDataSource java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public void initConnection();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
         0: .line 219
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getUrl:()Ljava/lang/String;
            ifnonnull 2
         1: .line 220
            new java.lang.IllegalStateException
            dup
            ldc "'url' property is required for lazily initializing a Connection"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 223
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.closeConnection:()V
         4: .line 224
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getUsername:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getPassword:()Ljava/lang/String;
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getConnectionFromDriver:(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
         5: .line 225
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.prepareConnection:(Ljava/sql/Connection;)V
         6: .line 226
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 8
         7: .line 227
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Established shared JDBC Connection: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         8: .line 229
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.isSuppressClose:()Z
            ifeq 9
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getCloseSuppressingConnectionProxy:(Ljava/sql/Connection;)Ljava/sql/Connection;
            goto 10
      StackMap locals:
      StackMap stack: org.springframework.jdbc.datasource.SingleConnectionDataSource
         9: aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
      StackMap locals: org.springframework.jdbc.datasource.SingleConnectionDataSource java.lang.Object
      StackMap stack: org.springframework.jdbc.datasource.SingleConnectionDataSource java.sql.Connection
        10: putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connection:Ljava/sql/Connection;
        11: .line 222
            aload 1
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
      Exception table:
        from    to  target  type
           3    12      13  any
          13    14      13  any
    Exceptions:
      throws java.sql.SQLException

  public void resetConnection();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
         0: .line 237
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connectionMonitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 238
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.closeConnection:()V
         2: .line 239
            aload 0 /* this */
            aconst_null
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
         3: .line 240
            aload 0 /* this */
            aconst_null
            putfield org.springframework.jdbc.datasource.SingleConnectionDataSource.connection:Ljava/sql/Connection;
         4: .line 237
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: org.springframework.jdbc.datasource.SingleConnectionDataSource java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 242
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  protected void prepareConnection(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // java.sql.Connection con
         0: .line 252
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.SingleConnectionDataSource.getAutoCommitValue:()Ljava/lang/Boolean;
            astore 2 /* autoCommit */
        start local 2 // java.lang.Boolean autoCommit
         1: .line 253
            aload 2 /* autoCommit */
            ifnull 3
            aload 1 /* con */
            invokeinterface java.sql.Connection.getAutoCommit:()Z
            aload 2 /* autoCommit */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            if_icmpeq 3
         2: .line 254
            aload 1 /* con */
            aload 2 /* autoCommit */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokeinterface java.sql.Connection.setAutoCommit:(Z)V
         3: .line 256
      StackMap locals: java.lang.Boolean
      StackMap stack:
            return
        end local 2 // java.lang.Boolean autoCommit
        end local 1 // java.sql.Connection con
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    4     1         con  Ljava/sql/Connection;
            1    4     2  autoCommit  Ljava/lang/Boolean;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      con   

  private void closeConnection();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
         0: .line 262
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
            ifnull 5
         1: .line 264
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.target:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.close:()V
         2: .line 265
            goto 5
         3: .line 266
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* ex */
        start local 1 // java.lang.Throwable ex
         4: .line 267
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.SingleConnectionDataSource.logger:Lorg/apache/commons/logging/Log;
            ldc "Could not close shared JDBC Connection"
            aload 1 /* ex */
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable ex
         5: .line 270
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            4    5     1    ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  protected java.sql.Connection getCloseSuppressingConnectionProxy(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)Ljava/sql/Connection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
        start local 1 // java.sql.Connection target
         0: .line 280
            ldc Lorg/springframework/jdbc/datasource/ConnectionProxy;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         1: .line 281
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/springframework/jdbc/datasource/ConnectionProxy;
            aastore
         2: .line 282
            new org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler
            dup
            aload 1 /* target */
            invokespecial org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler.<init>:(Ljava/sql/Connection;)V
         3: .line 279
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
            checkcast java.sql.Connection
            areturn
        end local 1 // java.sql.Connection target
        end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/springframework/jdbc/datasource/SingleConnectionDataSource;
            0    4     1  target  Ljava/sql/Connection;
    MethodParameters:
        Name  Flags
      target  
}
SourceFile: "SingleConnectionDataSource.java"
NestMembers:
  org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler
InnerClasses:
  private CloseSuppressingInvocationHandler = org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler of org.springframework.jdbc.datasource.SingleConnectionDataSource