class org.springframework.orm.hibernate5.ConfigurableJtaPlatform implements org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.orm.hibernate5.ConfigurableJtaPlatform
  super_class: java.lang.Object
{
  private final javax.transaction.TransactionManager transactionManager;
    descriptor: Ljavax/transaction/TransactionManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.transaction.UserTransaction userTransaction;
    descriptor: Ljavax/transaction/UserTransaction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry;
    descriptor: Ljavax/transaction/TransactionSynchronizationRegistry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>(javax.transaction.TransactionManager, javax.transaction.UserTransaction, javax.transaction.TransactionSynchronizationRegistry);
    descriptor: (Ljavax/transaction/TransactionManager;Ljavax/transaction/UserTransaction;Ljavax/transaction/TransactionSynchronizationRegistry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
        start local 1 // javax.transaction.TransactionManager tm
        start local 2 // javax.transaction.UserTransaction ut
        start local 3 // javax.transaction.TransactionSynchronizationRegistry tsr
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 1 /* tm */
            ldc "TransactionManager reference must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 63
            aload 0 /* this */
            aload 1 /* tm */
            putfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.transactionManager:Ljavax/transaction/TransactionManager;
         3: .line 64
            aload 0 /* this */
            aload 2 /* ut */
            ifnull 4
            aload 2 /* ut */
            goto 5
      StackMap locals: org.springframework.orm.hibernate5.ConfigurableJtaPlatform javax.transaction.TransactionManager javax.transaction.UserTransaction javax.transaction.TransactionSynchronizationRegistry
      StackMap stack: org.springframework.orm.hibernate5.ConfigurableJtaPlatform
         4: new org.springframework.transaction.jta.UserTransactionAdapter
            dup
            aload 1 /* tm */
            invokespecial org.springframework.transaction.jta.UserTransactionAdapter.<init>:(Ljavax/transaction/TransactionManager;)V
      StackMap locals: org.springframework.orm.hibernate5.ConfigurableJtaPlatform javax.transaction.TransactionManager javax.transaction.UserTransaction javax.transaction.TransactionSynchronizationRegistry
      StackMap stack: org.springframework.orm.hibernate5.ConfigurableJtaPlatform javax.transaction.UserTransaction
         5: putfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.userTransaction:Ljavax/transaction/UserTransaction;
         6: .line 65
            aload 0 /* this */
            aload 3 /* tsr */
            putfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
         7: .line 66
            return
        end local 3 // javax.transaction.TransactionSynchronizationRegistry tsr
        end local 2 // javax.transaction.UserTransaction ut
        end local 1 // javax.transaction.TransactionManager tm
        end local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/springframework/orm/hibernate5/ConfigurableJtaPlatform;
            0    8     1    tm  Ljavax/transaction/TransactionManager;
            0    8     2    ut  Ljavax/transaction/UserTransaction;
            0    8     3   tsr  Ljavax/transaction/TransactionSynchronizationRegistry;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      tm    
      ut    
      tsr   

  public javax.transaction.TransactionManager retrieveTransactionManager();
    descriptor: ()Ljavax/transaction/TransactionManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
         0: .line 71
            aload 0 /* this */
            getfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.transactionManager:Ljavax/transaction/TransactionManager;
            areturn
        end local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/hibernate5/ConfigurableJtaPlatform;

  public javax.transaction.UserTransaction retrieveUserTransaction();
    descriptor: ()Ljavax/transaction/UserTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
         0: .line 76
            aload 0 /* this */
            getfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.userTransaction:Ljavax/transaction/UserTransaction;
            areturn
        end local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/hibernate5/ConfigurableJtaPlatform;

  public java.lang.Object getTransactionIdentifier(javax.transaction.Transaction);
    descriptor: (Ljavax/transaction/Transaction;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
        start local 1 // javax.transaction.Transaction transaction
         0: .line 81
            aload 1 /* transaction */
            areturn
        end local 1 // javax.transaction.Transaction transaction
        end local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/springframework/orm/hibernate5/ConfigurableJtaPlatform;
            0    1     1  transaction  Ljavax/transaction/Transaction;
    MethodParameters:
             Name  Flags
      transaction  

  public boolean canRegisterSynchronization();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
         0: .line 87
            aload 0 /* this */
            getfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.transactionManager:Ljavax/transaction/TransactionManager;
            invokeinterface javax.transaction.TransactionManager.getStatus:()I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
         2: ireturn
         3: .line 89
      StackMap locals:
      StackMap stack: javax.transaction.SystemException
            astore 1 /* ex */
        start local 1 // javax.transaction.SystemException ex
         4: .line 90
            new org.hibernate.TransactionException
            dup
            ldc "Could not determine JTA transaction status"
            aload 1 /* ex */
            invokespecial org.hibernate.TransactionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // javax.transaction.SystemException ex
        end local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/orm/hibernate5/ConfigurableJtaPlatform;
            4    5     1    ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           0     2       3  Class javax.transaction.SystemException

  public void registerSynchronization(javax.transaction.Synchronization);
    descriptor: (Ljavax/transaction/Synchronization;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
        start local 1 // javax.transaction.Synchronization synchronization
         0: .line 96
            aload 0 /* this */
            getfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
            ifnull 3
         1: .line 97
            aload 0 /* this */
            getfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
            aload 1 /* synchronization */
            invokeinterface javax.transaction.TransactionSynchronizationRegistry.registerInterposedSynchronization:(Ljavax/transaction/Synchronization;)V
         2: .line 98
            goto 7
         3: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.transactionManager:Ljavax/transaction/TransactionManager;
            invokeinterface javax.transaction.TransactionManager.getTransaction:()Ljavax/transaction/Transaction;
            aload 1 /* synchronization */
            invokeinterface javax.transaction.Transaction.registerSynchronization:(Ljavax/transaction/Synchronization;)V
         4: .line 102
            goto 7
         5: .line 103
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         6: .line 104
            new org.hibernate.TransactionException
            dup
            ldc "Could not access JTA Transaction to register synchronization"
            aload 2 /* ex */
            invokespecial org.hibernate.TransactionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception ex
         7: .line 107
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.transaction.Synchronization synchronization
        end local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/springframework/orm/hibernate5/ConfigurableJtaPlatform;
            0    8     1  synchronization  Ljavax/transaction/Synchronization;
            6    7     2               ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
    MethodParameters:
                 Name  Flags
      synchronization  

  public int getCurrentStatus();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
         0: .line 111
            aload 0 /* this */
            getfield org.springframework.orm.hibernate5.ConfigurableJtaPlatform.transactionManager:Ljavax/transaction/TransactionManager;
            invokeinterface javax.transaction.TransactionManager.getStatus:()I
            ireturn
        end local 0 // org.springframework.orm.hibernate5.ConfigurableJtaPlatform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/hibernate5/ConfigurableJtaPlatform;
    Exceptions:
      throws javax.transaction.SystemException
}
SourceFile: "ConfigurableJtaPlatform.java"