public class io.ebeaninternal.server.transaction.JtaTransactionManager implements io.ebean.config.ExternalTransactionManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.ebeaninternal.server.transaction.JtaTransactionManager
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String EBEAN_TXN_RESOURCE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "EBEAN_TXN_RESOURCE"
private io.ebeaninternal.server.transaction.TransactionManager transactionManager;
descriptor: Lio/ebeaninternal/server/transaction/TransactionManager;
flags: (0x0002) ACC_PRIVATE
private io.ebeaninternal.server.transaction.TransactionScopeManager scope;
descriptor: Lio/ebeaninternal/server/transaction/TransactionScopeManager;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/ebeaninternal/server/transaction/JtaTransactionManager;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic io.ebeaninternal.server.transaction.JtaTransactionManager.logger:Lorg/slf4j/Logger;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/ebeaninternal/server/transaction/JtaTransactionManager;
public void setTransactionManager(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
checkcast io.ebeaninternal.server.transaction.TransactionManager
putfield io.ebeaninternal.server.transaction.JtaTransactionManager.transactionManager:Lio/ebeaninternal/server/transaction/TransactionManager;
1: aload 0
aload 0
getfield io.ebeaninternal.server.transaction.JtaTransactionManager.transactionManager:Lio/ebeaninternal/server/transaction/TransactionManager;
invokevirtual io.ebeaninternal.server.transaction.TransactionManager.scope:()Lio/ebeaninternal/server/transaction/TransactionScopeManager;
putfield io.ebeaninternal.server.transaction.JtaTransactionManager.scope:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/ebeaninternal/server/transaction/JtaTransactionManager;
0 3 1 txnMgr Ljava/lang/Object;
MethodParameters:
Name Flags
txnMgr
private javax.sql.DataSource dataSource();
descriptor: ()Ljavax/sql/DataSource;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.transaction.JtaTransactionManager.transactionManager:Lio/ebeaninternal/server/transaction/TransactionManager;
invokevirtual io.ebeaninternal.server.transaction.TransactionManager.getDataSource:()Ljavax/sql/DataSource;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/transaction/JtaTransactionManager;
private javax.transaction.TransactionSynchronizationRegistry getSyncRegistry();
descriptor: ()Ljavax/transaction/TransactionSynchronizationRegistry;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: new javax.naming.InitialContext
dup
invokespecial javax.naming.InitialContext.<init>:()V
astore 1
start local 1 1: aload 1
ldc "java:comp/TransactionSynchronizationRegistry"
invokevirtual javax.naming.InitialContext.lookup:(Ljava/lang/String;)Ljava/lang/Object;
checkcast javax.transaction.TransactionSynchronizationRegistry
2: areturn
end local 1 3: StackMap locals:
StackMap stack: javax.naming.NamingException
astore 1
start local 1 4: new javax.persistence.PersistenceException
dup
aload 1
invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/ebeaninternal/server/transaction/JtaTransactionManager;
1 3 1 ctx Ljavax/naming/InitialContext;
4 5 1 e Ljavax/naming/NamingException;
Exception table:
from to target type
0 2 3 Class javax.naming.NamingException
private javax.transaction.UserTransaction getUserTransaction();
descriptor: ()Ljavax/transaction/UserTransaction;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: new javax.naming.InitialContext
dup
invokespecial javax.naming.InitialContext.<init>:()V
astore 1
start local 1 1: aload 1
ldc "java:comp/UserTransaction"
invokevirtual javax.naming.InitialContext.lookup:(Ljava/lang/String;)Ljava/lang/Object;
checkcast javax.transaction.UserTransaction
2: areturn
end local 1 3: StackMap locals:
StackMap stack: javax.naming.NamingException
pop
4: new io.ebeaninternal.server.transaction.JtaTransactionManager$DummyUserTransaction
dup
invokespecial io.ebeaninternal.server.transaction.JtaTransactionManager$DummyUserTransaction.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/ebeaninternal/server/transaction/JtaTransactionManager;
1 3 1 ctx Ljavax/naming/InitialContext;
Exception table:
from to target type
0 2 3 Class javax.naming.NamingException
public java.lang.Object getCurrentTransaction();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual io.ebeaninternal.server.transaction.JtaTransactionManager.getSyncRegistry:()Ljavax/transaction/TransactionSynchronizationRegistry;
astore 1
start local 1 1: aload 1
ldc "EBEAN_TXN_RESOURCE"
invokeinterface javax.transaction.TransactionSynchronizationRegistry.getResource:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.ebeaninternal.api.SpiTransaction
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 2
areturn
4: StackMap locals: javax.transaction.TransactionSynchronizationRegistry io.ebeaninternal.api.SpiTransaction
StackMap stack:
aload 0
getfield io.ebeaninternal.server.transaction.JtaTransactionManager.scope:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.getInScope:()Lio/ebeaninternal/api/SpiTransaction;
astore 3
start local 3 5: aload 3
ifnull 9
6: new java.lang.StringBuilder
dup
ldc "JTA Transaction - no current txn BUT using current Ebean one "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface io.ebeaninternal.api.SpiTransaction.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 7: getstatic io.ebeaninternal.server.transaction.JtaTransactionManager.logger:Lorg/slf4j/Logger;
aload 4
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
8: aload 3
areturn
end local 4 9: StackMap locals: io.ebeaninternal.api.SpiTransaction
StackMap stack:
aload 0
invokevirtual io.ebeaninternal.server.transaction.JtaTransactionManager.getUserTransaction:()Ljavax/transaction/UserTransaction;
astore 4
start local 4 10: aload 4
ifnonnull 14
11: getstatic io.ebeaninternal.server.transaction.JtaTransactionManager.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 13
12: getstatic io.ebeaninternal.server.transaction.JtaTransactionManager.logger:Lorg/slf4j/Logger;
ldc "JTA Transaction - no current txn"
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
13: StackMap locals: javax.transaction.UserTransaction
StackMap stack:
aconst_null
areturn
14: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
astore 5
start local 5 15: new io.ebeaninternal.server.transaction.JtaTransaction
dup
aload 5
iconst_1
aload 4
aload 0
invokevirtual io.ebeaninternal.server.transaction.JtaTransactionManager.dataSource:()Ljavax/sql/DataSource;
aload 0
getfield io.ebeaninternal.server.transaction.JtaTransactionManager.transactionManager:Lio/ebeaninternal/server/transaction/TransactionManager;
invokespecial io.ebeaninternal.server.transaction.JtaTransaction.<init>:(Ljava/lang/String;ZLjavax/transaction/UserTransaction;Ljavax/sql/DataSource;Lio/ebeaninternal/server/transaction/TransactionManager;)V
astore 6
start local 6 16: aload 0
aload 6
invokevirtual io.ebeaninternal.server.transaction.JtaTransactionManager.createJtaTxnListener:(Lio/ebeaninternal/api/SpiTransaction;)Lio/ebeaninternal/server/transaction/JtaTransactionManager$JtaTxnListener;
astore 7
start local 7 17: aload 1
ldc "EBEAN_TXN_RESOURCE"
aload 6
invokeinterface javax.transaction.TransactionSynchronizationRegistry.putResource:(Ljava/lang/Object;Ljava/lang/Object;)V
18: aload 1
aload 7
invokeinterface javax.transaction.TransactionSynchronizationRegistry.registerInterposedSynchronization:(Ljavax/transaction/Synchronization;)V
19: aload 0
getfield io.ebeaninternal.server.transaction.JtaTransactionManager.scope:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
aload 6
invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.set:(Lio/ebeaninternal/api/SpiTransaction;)V
20: aload 6
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/ebeaninternal/server/transaction/JtaTransactionManager;
1 21 1 syncRegistry Ljavax/transaction/TransactionSynchronizationRegistry;
2 21 2 t Lio/ebeaninternal/api/SpiTransaction;
5 21 3 currentEbeanTransaction Lio/ebeaninternal/api/SpiTransaction;
7 9 4 msg Ljava/lang/String;
10 21 4 ut Ljavax/transaction/UserTransaction;
15 21 5 txnId Ljava/lang/String;
16 21 6 newTrans Lio/ebeaninternal/server/transaction/JtaTransaction;
17 21 7 txnListener Lio/ebeaninternal/server/transaction/JtaTransactionManager$JtaTxnListener;
private io.ebeaninternal.server.transaction.JtaTransactionManager$JtaTxnListener createJtaTxnListener(io.ebeaninternal.api.SpiTransaction);
descriptor: (Lio/ebeaninternal/api/SpiTransaction;)Lio/ebeaninternal/server/transaction/JtaTransactionManager$JtaTxnListener;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new io.ebeaninternal.server.transaction.JtaTransactionManager$JtaTxnListener
dup
aload 0
getfield io.ebeaninternal.server.transaction.JtaTransactionManager.transactionManager:Lio/ebeaninternal/server/transaction/TransactionManager;
aload 1
invokespecial io.ebeaninternal.server.transaction.JtaTransactionManager$JtaTxnListener.<init>:(Lio/ebeaninternal/server/transaction/TransactionManager;Lio/ebeaninternal/api/SpiTransaction;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/transaction/JtaTransactionManager;
0 1 1 t Lio/ebeaninternal/api/SpiTransaction;
MethodParameters:
Name Flags
t
}
SourceFile: "JtaTransactionManager.java"
NestMembers:
io.ebeaninternal.server.transaction.JtaTransactionManager$DummyUserTransaction io.ebeaninternal.server.transaction.JtaTransactionManager$JtaTxnListener
InnerClasses:
private DummyUserTransaction = io.ebeaninternal.server.transaction.JtaTransactionManager$DummyUserTransaction of io.ebeaninternal.server.transaction.JtaTransactionManager
private JtaTxnListener = io.ebeaninternal.server.transaction.JtaTransactionManager$JtaTxnListener of io.ebeaninternal.server.transaction.JtaTransactionManager