public abstract class org.springframework.jdbc.datasource.JdbcTransactionObjectSupport implements org.springframework.transaction.SavepointManager, org.springframework.transaction.support.SmartTransactionObject
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.springframework.jdbc.datasource.JdbcTransactionObjectSupport
super_class: java.lang.Object
{
private static final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private org.springframework.jdbc.datasource.ConnectionHolder connectionHolder;
descriptor: Lorg/springframework/jdbc/datasource/ConnectionHolder;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.Integer previousIsolationLevel;
descriptor: Ljava/lang/Integer;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private boolean readOnly;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean savepointAllowed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putstatic org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.logger:Lorg/apache/commons/logging/Log;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.readOnly:Z
2: aload 0
iconst_0
putfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.savepointAllowed:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
public void setConnectionHolder(org.springframework.jdbc.datasource.ConnectionHolder);
descriptor: (Lorg/springframework/jdbc/datasource/ConnectionHolder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.connectionHolder:Lorg/springframework/jdbc/datasource/ConnectionHolder;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
0 2 1 connectionHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
connectionHolder
public org.springframework.jdbc.datasource.ConnectionHolder getConnectionHolder();
descriptor: ()Lorg/springframework/jdbc/datasource/ConnectionHolder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.connectionHolder:Lorg/springframework/jdbc/datasource/ConnectionHolder;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "No ConnectionHolder available"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 0
getfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.connectionHolder:Lorg/springframework/jdbc/datasource/ConnectionHolder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
public boolean hasConnectionHolder();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.connectionHolder:Lorg/springframework/jdbc/datasource/ConnectionHolder;
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/JdbcTransactionObjectSupport;
public void setPreviousIsolationLevel(java.lang.Integer);
descriptor: (Ljava/lang/Integer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.previousIsolationLevel:Ljava/lang/Integer;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
0 2 1 previousIsolationLevel Ljava/lang/Integer;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
previousIsolationLevel
public java.lang.Integer getPreviousIsolationLevel();
descriptor: ()Ljava/lang/Integer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.previousIsolationLevel:Ljava/lang/Integer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setReadOnly(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.readOnly:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
0 2 1 readOnly Z
MethodParameters:
Name Flags
readOnly
public boolean isReadOnly();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.readOnly:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
public void setSavepointAllowed(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.savepointAllowed:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
0 2 1 savepointAllowed Z
MethodParameters:
Name Flags
savepointAllowed
public boolean isSavepointAllowed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.savepointAllowed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
public java.lang.Object createSavepoint();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.getConnectionHolderForSavepoint:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
astore 1
start local 1 1: aload 1
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.supportsSavepoints:()Z
ifne 5
2: new org.springframework.transaction.NestedTransactionNotSupportedException
dup
3: ldc "Cannot create a nested transaction because savepoints are not supported by your JDBC driver"
4: invokespecial org.springframework.transaction.NestedTransactionNotSupportedException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: org.springframework.jdbc.datasource.ConnectionHolder
StackMap stack:
aload 1
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.isRollbackOnly:()Z
ifeq 9
6: new org.springframework.transaction.CannotCreateTransactionException
dup
7: ldc "Cannot create savepoint for transaction which is already marked as rollback-only"
8: invokespecial org.springframework.transaction.CannotCreateTransactionException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.createSavepoint:()Ljava/sql/Savepoint;
10: areturn
11: StackMap locals:
StackMap stack: java.sql.SQLException
astore 2
start local 2 12: new org.springframework.transaction.CannotCreateTransactionException
dup
ldc "Could not create JDBC savepoint"
aload 2
invokespecial org.springframework.transaction.CannotCreateTransactionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
1 13 1 conHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
12 13 2 ex Ljava/sql/SQLException;
Exception table:
from to target type
1 10 11 Class java.sql.SQLException
Exceptions:
throws org.springframework.transaction.TransactionException
public void rollbackToSavepoint(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.getConnectionHolderForSavepoint:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.getConnection:()Ljava/sql/Connection;
aload 1
checkcast java.sql.Savepoint
invokeinterface java.sql.Connection.rollback:(Ljava/sql/Savepoint;)V
2: aload 2
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.resetRollbackOnly:()V
3: goto 6
4: StackMap locals: org.springframework.jdbc.datasource.JdbcTransactionObjectSupport java.lang.Object org.springframework.jdbc.datasource.ConnectionHolder
StackMap stack: java.lang.Throwable
astore 3
start local 3 5: new org.springframework.transaction.TransactionSystemException
dup
ldc "Could not roll back to JDBC savepoint"
aload 3
invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
0 7 1 savepoint Ljava/lang/Object;
1 7 2 conHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
5 6 3 ex Ljava/lang/Throwable;
Exception table:
from to target type
1 3 4 Class java.lang.Throwable
Exceptions:
throws org.springframework.transaction.TransactionException
MethodParameters:
Name Flags
savepoint
public void releaseSavepoint(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.getConnectionHolderForSavepoint:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.getConnection:()Ljava/sql/Connection;
aload 1
checkcast java.sql.Savepoint
invokeinterface java.sql.Connection.releaseSavepoint:(Ljava/sql/Savepoint;)V
2: goto 5
3: StackMap locals: org.springframework.jdbc.datasource.JdbcTransactionObjectSupport java.lang.Object org.springframework.jdbc.datasource.ConnectionHolder
StackMap stack: java.lang.Throwable
astore 3
start local 3 4: getstatic org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.logger:Lorg/apache/commons/logging/Log;
ldc "Could not explicitly release JDBC savepoint"
aload 3
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 3 5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
0 6 1 savepoint Ljava/lang/Object;
1 6 2 conHolder Lorg/springframework/jdbc/datasource/ConnectionHolder;
4 5 3 ex Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
Exceptions:
throws org.springframework.transaction.TransactionException
MethodParameters:
Name Flags
savepoint
protected org.springframework.jdbc.datasource.ConnectionHolder getConnectionHolderForSavepoint();
descriptor: ()Lorg/springframework/jdbc/datasource/ConnectionHolder;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.isSavepointAllowed:()Z
ifne 4
1: new org.springframework.transaction.NestedTransactionNotSupportedException
dup
2: ldc "Transaction manager does not allow nested transactions"
3: invokespecial org.springframework.transaction.NestedTransactionNotSupportedException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.hasConnectionHolder:()Z
ifne 8
5: new org.springframework.transaction.TransactionUsageException
dup
6: ldc "Cannot create nested transaction when not exposing a JDBC transaction"
7: invokespecial org.springframework.transaction.TransactionUsageException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.getConnectionHolder:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/jdbc/datasource/JdbcTransactionObjectSupport;
Exceptions:
throws org.springframework.transaction.TransactionException
}
SourceFile: "JdbcTransactionObjectSupport.java"