public class org.springframework.jdbc.datasource.ConnectionHolder extends org.springframework.transaction.support.ResourceHolderSupport
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.jdbc.datasource.ConnectionHolder
super_class: org.springframework.transaction.support.ResourceHolderSupport
{
public static final java.lang.String SAVEPOINT_NAME_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "SAVEPOINT_"
private org.springframework.jdbc.datasource.ConnectionHandle connectionHandle;
descriptor: Lorg/springframework/jdbc/datasource/ConnectionHandle;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.sql.Connection currentConnection;
descriptor: Ljava/sql/Connection;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private boolean transactionActive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Boolean savepointsSupported;
descriptor: Ljava/lang/Boolean;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private int savepointCounter;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>(org.springframework.jdbc.datasource.ConnectionHandle);
descriptor: (Lorg/springframework/jdbc/datasource/ConnectionHandle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.springframework.transaction.support.ResourceHolderSupport.<init>:()V
1: aload 0
iconst_0
putfield org.springframework.jdbc.datasource.ConnectionHolder.transactionActive:Z
2: aload 0
iconst_0
putfield org.springframework.jdbc.datasource.ConnectionHolder.savepointCounter:I
3: aload 1
ldc "ConnectionHandle must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
4: aload 0
aload 1
putfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
0 6 1 connectionHandle Lorg/springframework/jdbc/datasource/ConnectionHandle;
MethodParameters:
Name Flags
connectionHandle
public void <init>(java.sql.Connection);
descriptor: (Ljava/sql/Connection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.springframework.transaction.support.ResourceHolderSupport.<init>:()V
1: aload 0
iconst_0
putfield org.springframework.jdbc.datasource.ConnectionHolder.transactionActive:Z
2: aload 0
iconst_0
putfield org.springframework.jdbc.datasource.ConnectionHolder.savepointCounter:I
3: aload 0
new org.springframework.jdbc.datasource.SimpleConnectionHandle
dup
aload 1
invokespecial org.springframework.jdbc.datasource.SimpleConnectionHandle.<init>:(Ljava/sql/Connection;)V
putfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
0 5 1 connection Ljava/sql/Connection;
MethodParameters:
Name Flags
connection
public void <init>(java.sql.Connection, boolean);
descriptor: (Ljava/sql/Connection;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial org.springframework.jdbc.datasource.ConnectionHolder.<init>:(Ljava/sql/Connection;)V
1: aload 0
iload 2
putfield org.springframework.jdbc.datasource.ConnectionHolder.transactionActive:Z
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
0 3 1 connection Ljava/sql/Connection;
0 3 2 transactionActive Z
MethodParameters:
Name Flags
connection
transactionActive
public org.springframework.jdbc.datasource.ConnectionHandle getConnectionHandle();
descriptor: ()Lorg/springframework/jdbc/datasource/ConnectionHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
protected boolean hasConnection();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
protected void setTransactionActive(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.jdbc.datasource.ConnectionHolder.transactionActive:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
0 2 1 transactionActive Z
MethodParameters:
Name Flags
transactionActive
protected boolean isTransactionActive();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.transactionActive:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
protected void setConnection(java.sql.Connection);
descriptor: (Ljava/sql/Connection;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
ifnull 4
1: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
ifnull 3
2: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
invokeinterface org.springframework.jdbc.datasource.ConnectionHandle.releaseConnection:(Ljava/sql/Connection;)V
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
4: StackMap locals:
StackMap stack:
aload 1
ifnull 7
5: aload 0
new org.springframework.jdbc.datasource.SimpleConnectionHandle
dup
aload 1
invokespecial org.springframework.jdbc.datasource.SimpleConnectionHandle.<init>:(Ljava/sql/Connection;)V
putfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
0 9 1 connection Ljava/sql/Connection;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
connection
public java.sql.Connection getConnection();
descriptor: ()Ljava/sql/Connection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
ldc "Active Connection is required"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
ifnonnull 3
2: aload 0
aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
invokeinterface org.springframework.jdbc.datasource.ConnectionHandle.getConnection:()Ljava/sql/Connection;
putfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
3: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
public boolean supportsSavepoints();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.savepointsSupported:Ljava/lang/Boolean;
ifnonnull 2
1: aload 0
aload 0
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.getConnection:()Ljava/sql/Connection;
invokeinterface java.sql.Connection.getMetaData:()Ljava/sql/DatabaseMetaData;
invokeinterface java.sql.DatabaseMetaData.supportsSavepoints:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
putfield org.springframework.jdbc.datasource.ConnectionHolder.savepointsSupported:Ljava/lang/Boolean;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.savepointsSupported:Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
Exceptions:
throws java.sql.SQLException
public java.sql.Savepoint createSavepoint();
descriptor: ()Ljava/sql/Savepoint;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.springframework.jdbc.datasource.ConnectionHolder.savepointCounter:I
iconst_1
iadd
putfield org.springframework.jdbc.datasource.ConnectionHolder.savepointCounter:I
1: aload 0
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.getConnection:()Ljava/sql/Connection;
new java.lang.StringBuilder
dup
ldc "SAVEPOINT_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.savepointCounter:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.sql.Connection.setSavepoint:(Ljava/lang/String;)Ljava/sql/Savepoint;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
Exceptions:
throws java.sql.SQLException
public void released();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.transaction.support.ResourceHolderSupport.released:()V
1: aload 0
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.isOpen:()Z
ifne 5
aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
ifnull 5
2: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
ifnull 4
3: aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.connectionHandle:Lorg/springframework/jdbc/datasource/ConnectionHandle;
aload 0
getfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
invokeinterface org.springframework.jdbc.datasource.ConnectionHandle.releaseConnection:(Ljava/sql/Connection;)V
4: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.springframework.jdbc.datasource.ConnectionHolder.currentConnection:Ljava/sql/Connection;
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.transaction.support.ResourceHolderSupport.clear:()V
1: aload 0
iconst_0
putfield org.springframework.jdbc.datasource.ConnectionHolder.transactionActive:Z
2: aload 0
aconst_null
putfield org.springframework.jdbc.datasource.ConnectionHolder.savepointsSupported:Ljava/lang/Boolean;
3: aload 0
iconst_0
putfield org.springframework.jdbc.datasource.ConnectionHolder.savepointCounter:I
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/jdbc/datasource/ConnectionHolder;
}
SourceFile: "ConnectionHolder.java"