public class org.springframework.transaction.jta.JtaTransactionManager extends org.springframework.transaction.support.AbstractPlatformTransactionManager implements org.springframework.transaction.jta.TransactionFactory, org.springframework.beans.factory.InitializingBean, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.transaction.jta.JtaTransactionManager
  super_class: org.springframework.transaction.support.AbstractPlatformTransactionManager
{
  public static final java.lang.String DEFAULT_USER_TRANSACTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java:comp/UserTransaction"

  public static final java.lang.String[] FALLBACK_TRANSACTION_MANAGER_NAMES;
    descriptor: [Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String DEFAULT_TRANSACTION_SYNCHRONIZATION_REGISTRY_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java:comp/TransactionSynchronizationRegistry"

  private transient org.springframework.jndi.JndiTemplate jndiTemplate;
    descriptor: Lorg/springframework/jndi/JndiTemplate;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient javax.transaction.UserTransaction userTransaction;
    descriptor: Ljavax/transaction/UserTransaction;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  private boolean autodetectUserTransaction;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean cacheUserTransaction;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean userTransactionObtainedFromJndi;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private transient javax.transaction.TransactionManager transactionManager;
    descriptor: Ljavax/transaction/TransactionManager;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  private boolean autodetectTransactionManager;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private transient javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry;
    descriptor: Ljavax/transaction/TransactionSynchronizationRegistry;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  private boolean autodetectTransactionSynchronizationRegistry;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean allowCustomIsolationLevels;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 139
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "java:comp/TransactionManager"
            aastore
            dup
            iconst_1
            ldc "java:appserver/TransactionManager"
            aastore
            dup
            iconst_2
         1: .line 140
            ldc "java:pm/TransactionManager"
            aastore
            dup
            iconst_3
            ldc "java:/TransactionManager"
            aastore
         2: .line 138
            putstatic org.springframework.transaction.jta.JtaTransactionManager.FALLBACK_TRANSACTION_MANAGER_NAMES:[Ljava/lang/String;
         3: .line 147
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 192
            aload 0 /* this */
            invokespecial org.springframework.transaction.support.AbstractPlatformTransactionManager.<init>:()V
         1: .line 150
            aload 0 /* this */
            new org.springframework.jndi.JndiTemplate
            dup
            invokespecial org.springframework.jndi.JndiTemplate.<init>:()V
            putfield org.springframework.transaction.jta.JtaTransactionManager.jndiTemplate:Lorg/springframework/jndi/JndiTemplate;
         2: .line 158
            aload 0 /* this */
            iconst_1
            putfield org.springframework.transaction.jta.JtaTransactionManager.autodetectUserTransaction:Z
         3: .line 160
            aload 0 /* this */
            iconst_1
            putfield org.springframework.transaction.jta.JtaTransactionManager.cacheUserTransaction:Z
         4: .line 162
            aload 0 /* this */
            iconst_0
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionObtainedFromJndi:Z
         5: .line 170
            aload 0 /* this */
            iconst_1
            putfield org.springframework.transaction.jta.JtaTransactionManager.autodetectTransactionManager:Z
         6: .line 178
            aload 0 /* this */
            iconst_1
            putfield org.springframework.transaction.jta.JtaTransactionManager.autodetectTransactionSynchronizationRegistry:Z
         7: .line 180
            aload 0 /* this */
            iconst_0
            putfield org.springframework.transaction.jta.JtaTransactionManager.allowCustomIsolationLevels:Z
         8: .line 193
            aload 0 /* this */
            iconst_1
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.setNestedTransactionAllowed:(Z)V
         9: .line 194
            return
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;

  public void <init>(javax.transaction.UserTransaction);
    descriptor: (Ljavax/transaction/UserTransaction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.UserTransaction userTransaction
         0: .line 201
            aload 0 /* this */
            invokespecial org.springframework.transaction.jta.JtaTransactionManager.<init>:()V
         1: .line 202
            aload 1 /* userTransaction */
            ldc "UserTransaction must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 203
            aload 0 /* this */
            aload 1 /* userTransaction */
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
         3: .line 204
            return
        end local 1 // javax.transaction.UserTransaction userTransaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    4     1  userTransaction  Ljavax/transaction/UserTransaction;
    MethodParameters:
                 Name  Flags
      userTransaction  

  public void <init>(javax.transaction.UserTransaction, javax.transaction.TransactionManager);
    descriptor: (Ljavax/transaction/UserTransaction;Ljavax/transaction/TransactionManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.UserTransaction userTransaction
        start local 2 // javax.transaction.TransactionManager transactionManager
         0: .line 212
            aload 0 /* this */
            invokespecial org.springframework.transaction.jta.JtaTransactionManager.<init>:()V
         1: .line 213
            aload 1 /* userTransaction */
            ldc "UserTransaction must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 214
            aload 2 /* transactionManager */
            ldc "TransactionManager must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 215
            aload 0 /* this */
            aload 1 /* userTransaction */
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
         4: .line 216
            aload 0 /* this */
            aload 2 /* transactionManager */
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
         5: .line 217
            return
        end local 2 // javax.transaction.TransactionManager transactionManager
        end local 1 // javax.transaction.UserTransaction userTransaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    6     1     userTransaction  Ljavax/transaction/UserTransaction;
            0    6     2  transactionManager  Ljavax/transaction/TransactionManager;
    MethodParameters:
                    Name  Flags
      userTransaction     
      transactionManager  

  public void <init>(javax.transaction.TransactionManager);
    descriptor: (Ljavax/transaction/TransactionManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.TransactionManager transactionManager
         0: .line 224
            aload 0 /* this */
            invokespecial org.springframework.transaction.jta.JtaTransactionManager.<init>:()V
         1: .line 225
            aload 1 /* transactionManager */
            ldc "TransactionManager must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 226
            aload 0 /* this */
            aload 1 /* transactionManager */
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
         3: .line 227
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* transactionManager */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.buildUserTransaction:(Ljavax/transaction/TransactionManager;)Ljavax/transaction/UserTransaction;
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
         4: .line 228
            return
        end local 1 // javax.transaction.TransactionManager transactionManager
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    5     1  transactionManager  Ljavax/transaction/TransactionManager;
    MethodParameters:
                    Name  Flags
      transactionManager  

  public void setJndiTemplate(org.springframework.jndi.JndiTemplate);
    descriptor: (Lorg/springframework/jndi/JndiTemplate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.jndi.JndiTemplate jndiTemplate
         0: .line 236
            aload 1 /* jndiTemplate */
            ldc "JndiTemplate must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 237
            aload 0 /* this */
            aload 1 /* jndiTemplate */
            putfield org.springframework.transaction.jta.JtaTransactionManager.jndiTemplate:Lorg/springframework/jndi/JndiTemplate;
         2: .line 238
            return
        end local 1 // org.springframework.jndi.JndiTemplate jndiTemplate
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    3     1  jndiTemplate  Lorg/springframework/jndi/JndiTemplate;
    MethodParameters:
              Name  Flags
      jndiTemplate  

  public org.springframework.jndi.JndiTemplate getJndiTemplate();
    descriptor: ()Lorg/springframework/jndi/JndiTemplate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 244
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.jndiTemplate:Lorg/springframework/jndi/JndiTemplate;
            areturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;

  public void setJndiEnvironment(java.util.Properties);
    descriptor: (Ljava/util/Properties;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.util.Properties jndiEnvironment
         0: .line 253
            aload 0 /* this */
            new org.springframework.jndi.JndiTemplate
            dup
            aload 1 /* jndiEnvironment */
            invokespecial org.springframework.jndi.JndiTemplate.<init>:(Ljava/util/Properties;)V
            putfield org.springframework.transaction.jta.JtaTransactionManager.jndiTemplate:Lorg/springframework/jndi/JndiTemplate;
         1: .line 254
            return
        end local 1 // java.util.Properties jndiEnvironment
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  jndiEnvironment  Ljava/util/Properties;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      jndiEnvironment  

  public java.util.Properties getJndiEnvironment();
    descriptor: ()Ljava/util/Properties;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 261
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.jndiTemplate:Lorg/springframework/jndi/JndiTemplate;
            invokevirtual org.springframework.jndi.JndiTemplate.getEnvironment:()Ljava/util/Properties;
            areturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setUserTransaction(javax.transaction.UserTransaction);
    descriptor: (Ljavax/transaction/UserTransaction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.UserTransaction userTransaction
         0: .line 273
            aload 0 /* this */
            aload 1 /* userTransaction */
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
         1: .line 274
            return
        end local 1 // javax.transaction.UserTransaction userTransaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  userTransaction  Ljavax/transaction/UserTransaction;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      userTransaction  

  public javax.transaction.UserTransaction getUserTransaction();
    descriptor: ()Ljavax/transaction/UserTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 281
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
            areturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setUserTransactionName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.String userTransactionName
         0: .line 293
            aload 0 /* this */
            aload 1 /* userTransactionName */
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionName:Ljava/lang/String;
         1: .line 294
            return
        end local 1 // java.lang.String userTransactionName
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  userTransactionName  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      userTransactionName  

  public void setAutodetectUserTransaction(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // boolean autodetectUserTransaction
         0: .line 307
            aload 0 /* this */
            iload 1 /* autodetectUserTransaction */
            putfield org.springframework.transaction.jta.JtaTransactionManager.autodetectUserTransaction:Z
         1: .line 308
            return
        end local 1 // boolean autodetectUserTransaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    2     0                       this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  autodetectUserTransaction  Z
    MethodParameters:
                           Name  Flags
      autodetectUserTransaction  

  public void setCacheUserTransaction(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // boolean cacheUserTransaction
         0: .line 323
            aload 0 /* this */
            iload 1 /* cacheUserTransaction */
            putfield org.springframework.transaction.jta.JtaTransactionManager.cacheUserTransaction:Z
         1: .line 324
            return
        end local 1 // boolean cacheUserTransaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  cacheUserTransaction  Z
    MethodParameters:
                      Name  Flags
      cacheUserTransaction  

  public void setTransactionManager(javax.transaction.TransactionManager);
    descriptor: (Ljavax/transaction/TransactionManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.TransactionManager transactionManager
         0: .line 337
            aload 0 /* this */
            aload 1 /* transactionManager */
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
         1: .line 338
            return
        end local 1 // javax.transaction.TransactionManager transactionManager
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  transactionManager  Ljavax/transaction/TransactionManager;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                    Name  Flags
      transactionManager  

  public javax.transaction.TransactionManager getTransactionManager();
    descriptor: ()Ljavax/transaction/TransactionManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 345
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
            areturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setTransactionManagerName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.String transactionManagerName
         0: .line 359
            aload 0 /* this */
            aload 1 /* transactionManagerName */
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionManagerName:Ljava/lang/String;
         1: .line 360
            return
        end local 1 // java.lang.String transactionManagerName
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  transactionManagerName  Ljava/lang/String;
    MethodParameters:
                        Name  Flags
      transactionManagerName  

  public void setAutodetectTransactionManager(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // boolean autodetectTransactionManager
         0: .line 375
            aload 0 /* this */
            iload 1 /* autodetectTransactionManager */
            putfield org.springframework.transaction.jta.JtaTransactionManager.autodetectTransactionManager:Z
         1: .line 376
            return
        end local 1 // boolean autodetectTransactionManager
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    2     0                          this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  autodetectTransactionManager  Z
    MethodParameters:
                              Name  Flags
      autodetectTransactionManager  

  public void setTransactionSynchronizationRegistry(javax.transaction.TransactionSynchronizationRegistry);
    descriptor: (Ljavax/transaction/TransactionSynchronizationRegistry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry
         0: .line 390
            aload 0 /* this */
            aload 1 /* transactionSynchronizationRegistry */
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
         1: .line 391
            return
        end local 1 // javax.transaction.TransactionSynchronizationRegistry transactionSynchronizationRegistry
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                                Name  Signature
            0    2     0                                this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  transactionSynchronizationRegistry  Ljavax/transaction/TransactionSynchronizationRegistry;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                                    Name  Flags
      transactionSynchronizationRegistry  

  public javax.transaction.TransactionSynchronizationRegistry getTransactionSynchronizationRegistry();
    descriptor: ()Ljavax/transaction/TransactionSynchronizationRegistry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 398
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
            areturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setTransactionSynchronizationRegistryName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.String transactionSynchronizationRegistryName
         0: .line 409
            aload 0 /* this */
            aload 1 /* transactionSynchronizationRegistryName */
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistryName:Ljava/lang/String;
         1: .line 410
            return
        end local 1 // java.lang.String transactionSynchronizationRegistryName
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                                    Name  Signature
            0    2     0                                    this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  transactionSynchronizationRegistryName  Ljava/lang/String;
    MethodParameters:
                                        Name  Flags
      transactionSynchronizationRegistryName  

  public void setAutodetectTransactionSynchronizationRegistry(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // boolean autodetectTransactionSynchronizationRegistry
         0: .line 423
            aload 0 /* this */
            iload 1 /* autodetectTransactionSynchronizationRegistry */
            putfield org.springframework.transaction.jta.JtaTransactionManager.autodetectTransactionSynchronizationRegistry:Z
         1: .line 424
            return
        end local 1 // boolean autodetectTransactionSynchronizationRegistry
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                                          Name  Signature
            0    2     0                                          this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  autodetectTransactionSynchronizationRegistry  Z
    MethodParameters:
                                              Name  Flags
      autodetectTransactionSynchronizationRegistry  

  public void setAllowCustomIsolationLevels(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // boolean allowCustomIsolationLevels
         0: .line 436
            aload 0 /* this */
            iload 1 /* allowCustomIsolationLevels */
            putfield org.springframework.transaction.jta.JtaTransactionManager.allowCustomIsolationLevels:Z
         1: .line 437
            return
        end local 1 // boolean allowCustomIsolationLevels
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    2     0                        this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    2     1  allowCustomIsolationLevels  Z
    MethodParameters:
                            Name  Flags
      allowCustomIsolationLevels  

  public void afterPropertiesSet();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 446
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.initUserTransactionAndTransactionManager:()V
         1: .line 447
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.checkUserTransactionAndTransactionManager:()V
         2: .line 448
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.initTransactionSynchronizationRegistry:()V
         3: .line 449
            return
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException

  protected void initUserTransactionAndTransactionManager();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 456
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
            ifnonnull 8
         1: .line 458
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionName:Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 5
         2: .line 459
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionName:Ljava/lang/String;
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.lookupUserTransaction:(Ljava/lang/String;)Ljavax/transaction/UserTransaction;
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
         3: .line 460
            aload 0 /* this */
            iconst_1
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionObtainedFromJndi:Z
         4: .line 461
            goto 8
         5: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.retrieveUserTransaction:()Ljavax/transaction/UserTransaction;
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
         6: .line 464
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
            ifnonnull 8
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.autodetectUserTransaction:Z
            ifeq 8
         7: .line 466
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.findUserTransaction:()Ljavax/transaction/UserTransaction;
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
         8: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
            ifnonnull 15
         9: .line 473
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManagerName:Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 474
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManagerName:Ljava/lang/String;
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.lookupTransactionManager:(Ljava/lang/String;)Ljavax/transaction/TransactionManager;
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
        11: .line 475
            goto 15
        12: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.retrieveTransactionManager:()Ljavax/transaction/TransactionManager;
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
        13: .line 478
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
            ifnonnull 15
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.autodetectTransactionManager:Z
            ifeq 15
        14: .line 481
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.findTransactionManager:(Ljavax/transaction/UserTransaction;)Ljavax/transaction/TransactionManager;
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
        15: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
            ifnonnull 17
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
            ifnull 17
        16: .line 488
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.buildUserTransaction:(Ljavax/transaction/TransactionManager;)Ljavax/transaction/UserTransaction;
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
        17: .line 490
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException

  protected void checkUserTransactionAndTransactionManager();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 499
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
            ifnull 4
         1: .line 500
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 5
         2: .line 501
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Using JTA UserTransaction: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
            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
         3: .line 503
            goto 5
         4: .line 505
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "No JTA UserTransaction available - specify either 'userTransaction' or 'userTransactionName' or 'transactionManager' or 'transactionManagerName'"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
            ifnull 9
         6: .line 511
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 10
         7: .line 512
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Using JTA TransactionManager: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
            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 514
            goto 10
         9: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            ldc "No JTA TransactionManager found: transaction suspension not available"
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
        10: .line 518
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    Exceptions:
      throws java.lang.IllegalStateException

  protected void initTransactionSynchronizationRegistry();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 527
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
            ifnonnull 11
         1: .line 529
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistryName:Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 6
         2: .line 530
            aload 0 /* this */
         3: .line 531
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistryName:Ljava/lang/String;
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.lookupTransactionSynchronizationRegistry:(Ljava/lang/String;)Ljavax/transaction/TransactionSynchronizationRegistry;
         4: .line 530
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
         5: .line 532
            goto 11
         6: .line 534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.retrieveTransactionSynchronizationRegistry:()Ljavax/transaction/TransactionSynchronizationRegistry;
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
         7: .line 535
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
            ifnonnull 11
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.autodetectTransactionSynchronizationRegistry:Z
            ifeq 11
         8: .line 538
            aload 0 /* this */
         9: .line 539
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransaction:Ljavax/transaction/UserTransaction;
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionManager:Ljavax/transaction/TransactionManager;
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.findTransactionSynchronizationRegistry:(Ljavax/transaction/UserTransaction;Ljavax/transaction/TransactionManager;)Ljavax/transaction/TransactionSynchronizationRegistry;
        10: .line 538
            putfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
        11: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
            ifnull 14
        12: .line 545
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 14
        13: .line 546
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Using JTA TransactionSynchronizationRegistry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
            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
        14: .line 549
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;

  protected javax.transaction.UserTransaction buildUserTransaction(javax.transaction.TransactionManager);
    descriptor: (Ljavax/transaction/TransactionManager;)Ljavax/transaction/UserTransaction;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.TransactionManager transactionManager
         0: .line 558
            aload 1 /* transactionManager */
            instanceof javax.transaction.UserTransaction
            ifeq 2
         1: .line 559
            aload 1 /* transactionManager */
            checkcast javax.transaction.UserTransaction
            areturn
         2: .line 562
      StackMap locals:
      StackMap stack:
            new org.springframework.transaction.jta.UserTransactionAdapter
            dup
            aload 1 /* transactionManager */
            invokespecial org.springframework.transaction.jta.UserTransactionAdapter.<init>:(Ljavax/transaction/TransactionManager;)V
            areturn
        end local 1 // javax.transaction.TransactionManager transactionManager
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    3     1  transactionManager  Ljavax/transaction/TransactionManager;
    MethodParameters:
                    Name  Flags
      transactionManager  

  protected javax.transaction.UserTransaction lookupUserTransaction(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/transaction/UserTransaction;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.String userTransactionName
         0: .line 579
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 580
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Retrieving JTA UserTransaction from JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* userTransactionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         2: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 1 /* userTransactionName */
            ldc Ljavax/transaction/UserTransaction;
            invokevirtual org.springframework.jndi.JndiTemplate.lookup:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.transaction.UserTransaction
         3: areturn
         4: .line 584
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 2 /* ex */
        start local 2 // javax.naming.NamingException ex
         5: .line 585
            new org.springframework.transaction.TransactionSystemException
            dup
         6: .line 586
            new java.lang.StringBuilder
            dup
            ldc "JTA UserTransaction is not available at JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* userTransactionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
         7: .line 585
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // javax.naming.NamingException ex
        end local 1 // java.lang.String userTransactionName
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    8     1  userTransactionName  Ljava/lang/String;
            5    8     2                   ex  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0     3       4  Class javax.naming.NamingException
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException
    MethodParameters:
                     Name  Flags
      userTransactionName  

  protected javax.transaction.TransactionManager lookupTransactionManager(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/transaction/TransactionManager;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.String transactionManagerName
         0: .line 603
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 604
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Retrieving JTA TransactionManager from JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* transactionManagerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         2: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 1 /* transactionManagerName */
            ldc Ljavax/transaction/TransactionManager;
            invokevirtual org.springframework.jndi.JndiTemplate.lookup:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.transaction.TransactionManager
         3: areturn
         4: .line 608
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 2 /* ex */
        start local 2 // javax.naming.NamingException ex
         5: .line 609
            new org.springframework.transaction.TransactionSystemException
            dup
         6: .line 610
            new java.lang.StringBuilder
            dup
            ldc "JTA TransactionManager is not available at JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* transactionManagerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
         7: .line 609
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // javax.naming.NamingException ex
        end local 1 // java.lang.String transactionManagerName
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0                    this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    8     1  transactionManagerName  Ljava/lang/String;
            5    8     2                      ex  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0     3       4  Class javax.naming.NamingException
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException
    MethodParameters:
                        Name  Flags
      transactionManagerName  

  protected javax.transaction.TransactionSynchronizationRegistry lookupTransactionSynchronizationRegistry(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/transaction/TransactionSynchronizationRegistry;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.String registryName
         0: .line 626
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 627
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Retrieving JTA TransactionSynchronizationRegistry from JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* registryName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         2: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 1 /* registryName */
            ldc Ljavax/transaction/TransactionSynchronizationRegistry;
            invokevirtual org.springframework.jndi.JndiTemplate.lookup:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.transaction.TransactionSynchronizationRegistry
         3: areturn
         4: .line 631
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 2 /* ex */
        start local 2 // javax.naming.NamingException ex
         5: .line 632
            new org.springframework.transaction.TransactionSystemException
            dup
         6: .line 633
            new java.lang.StringBuilder
            dup
            ldc "JTA TransactionSynchronizationRegistry is not available at JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* registryName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
         7: .line 632
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // javax.naming.NamingException ex
        end local 1 // java.lang.String registryName
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    8     1  registryName  Ljava/lang/String;
            5    8     2            ex  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0     3       4  Class javax.naming.NamingException
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException
    MethodParameters:
              Name  Flags
      registryName  

  protected javax.transaction.UserTransaction retrieveUserTransaction();
    descriptor: ()Ljavax/transaction/UserTransaction;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 648
            aconst_null
            areturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected javax.transaction.TransactionManager retrieveTransactionManager();
    descriptor: ()Ljavax/transaction/TransactionManager;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 662
            aconst_null
            areturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected javax.transaction.TransactionSynchronizationRegistry retrieveTransactionSynchronizationRegistry();
    descriptor: ()Ljavax/transaction/TransactionSynchronizationRegistry;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 675
            aconst_null
            areturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected javax.transaction.UserTransaction findUserTransaction();
    descriptor: ()Ljavax/transaction/UserTransaction;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 686
            ldc "java:comp/UserTransaction"
            astore 1 /* jndiName */
        start local 1 // java.lang.String jndiName
         1: .line 688
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 1 /* jndiName */
            ldc Ljavax/transaction/UserTransaction;
            invokevirtual org.springframework.jndi.JndiTemplate.lookup:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.transaction.UserTransaction
            astore 2 /* ut */
        start local 2 // javax.transaction.UserTransaction ut
         2: .line 689
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 4
         3: .line 690
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "JTA UserTransaction found at default JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* jndiName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         4: .line 692
      StackMap locals: java.lang.String javax.transaction.UserTransaction
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionObtainedFromJndi:Z
         5: .line 693
            aload 2 /* ut */
         6: areturn
        end local 2 // javax.transaction.UserTransaction ut
         7: .line 695
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager java.lang.String
      StackMap stack: javax.naming.NamingException
            astore 2 /* ex */
        start local 2 // javax.naming.NamingException ex
         8: .line 696
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 10
         9: .line 697
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "No JTA UserTransaction found at default JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* jndiName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        10: .line 699
      StackMap locals: javax.naming.NamingException
      StackMap stack:
            aconst_null
            areturn
        end local 2 // javax.naming.NamingException ex
        end local 1 // java.lang.String jndiName
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            1   11     1  jndiName  Ljava/lang/String;
            2    7     2        ut  Ljavax/transaction/UserTransaction;
            8   11     2        ex  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     6       7  Class javax.naming.NamingException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected javax.transaction.TransactionManager findTransactionManager(javax.transaction.UserTransaction);
    descriptor: (Ljavax/transaction/UserTransaction;)Ljavax/transaction/TransactionManager;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.UserTransaction ut
         0: .line 713
            aload 1 /* ut */
            instanceof javax.transaction.TransactionManager
            ifeq 4
         1: .line 714
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 3
         2: .line 715
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "JTA UserTransaction object ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ut */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] implements TransactionManager"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         3: .line 717
      StackMap locals:
      StackMap stack:
            aload 1 /* ut */
            checkcast javax.transaction.TransactionManager
            areturn
         4: .line 721
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.transaction.jta.JtaTransactionManager.FALLBACK_TRANSACTION_MANAGER_NAMES:[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 15
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager javax.transaction.UserTransaction top int int java.lang.String[]
      StackMap stack:
         5: aload 5
            iload 3
            aaload
            astore 2 /* jndiName */
        start local 2 // java.lang.String jndiName
         6: .line 723
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 2 /* jndiName */
            ldc Ljavax/transaction/TransactionManager;
            invokevirtual org.springframework.jndi.JndiTemplate.lookup:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.transaction.TransactionManager
            astore 6 /* tm */
        start local 6 // javax.transaction.TransactionManager tm
         7: .line 724
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 9
         8: .line 725
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "JTA TransactionManager found at fallback JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* jndiName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         9: .line 727
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager javax.transaction.UserTransaction java.lang.String int int java.lang.String[] javax.transaction.TransactionManager
      StackMap stack:
            aload 6 /* tm */
        10: areturn
        end local 6 // javax.transaction.TransactionManager tm
        11: .line 729
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager javax.transaction.UserTransaction java.lang.String int int java.lang.String[]
      StackMap stack: javax.naming.NamingException
            astore 6 /* ex */
        start local 6 // javax.naming.NamingException ex
        12: .line 730
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 14
        13: .line 731
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "No JTA TransactionManager found at fallback JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* jndiName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 6 // javax.naming.NamingException ex
        end local 2 // java.lang.String jndiName
        14: .line 721
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager javax.transaction.UserTransaction top int int java.lang.String[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        15: iload 3
            iload 4
            if_icmplt 5
        16: .line 737
            aconst_null
            areturn
        end local 1 // javax.transaction.UserTransaction ut
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   17     1        ut  Ljavax/transaction/UserTransaction;
            6   14     2  jndiName  Ljava/lang/String;
            7   11     6        tm  Ljavax/transaction/TransactionManager;
           12   14     6        ex  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           6    10      11  Class javax.naming.NamingException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      ut    

  protected javax.transaction.TransactionSynchronizationRegistry findTransactionSynchronizationRegistry(javax.transaction.UserTransaction, javax.transaction.TransactionManager);
    descriptor: (Ljavax/transaction/UserTransaction;Ljavax/transaction/TransactionManager;)Ljavax/transaction/TransactionSynchronizationRegistry;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.UserTransaction ut
        start local 2 // javax.transaction.TransactionManager tm
         0: .line 755
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionObtainedFromJndi:Z
            ifeq 10
         1: .line 758
            ldc "java:comp/TransactionSynchronizationRegistry"
            astore 3 /* jndiName */
        start local 3 // java.lang.String jndiName
         2: .line 760
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 3 /* jndiName */
            ldc Ljavax/transaction/TransactionSynchronizationRegistry;
            invokevirtual org.springframework.jndi.JndiTemplate.lookup:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.transaction.TransactionSynchronizationRegistry
            astore 4 /* tsr */
        start local 4 // javax.transaction.TransactionSynchronizationRegistry tsr
         3: .line 761
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 5
         4: .line 762
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "JTA TransactionSynchronizationRegistry found at default JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* jndiName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         5: .line 764
      StackMap locals: java.lang.String javax.transaction.TransactionSynchronizationRegistry
      StackMap stack:
            aload 4 /* tsr */
         6: areturn
        end local 4 // javax.transaction.TransactionSynchronizationRegistry tsr
         7: .line 766
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager javax.transaction.UserTransaction javax.transaction.TransactionManager java.lang.String
      StackMap stack: javax.naming.NamingException
            astore 4 /* ex */
        start local 4 // javax.naming.NamingException ex
         8: .line 767
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 10
         9: .line 768
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "No JTA TransactionSynchronizationRegistry found at default JNDI location ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* jndiName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // javax.naming.NamingException ex
        end local 3 // java.lang.String jndiName
        10: .line 773
      StackMap locals:
      StackMap stack:
            aload 1 /* ut */
            instanceof javax.transaction.TransactionSynchronizationRegistry
            ifeq 12
        11: .line 774
            aload 1 /* ut */
            checkcast javax.transaction.TransactionSynchronizationRegistry
            areturn
        12: .line 776
      StackMap locals:
      StackMap stack:
            aload 2 /* tm */
            instanceof javax.transaction.TransactionSynchronizationRegistry
            ifeq 14
        13: .line 777
            aload 2 /* tm */
            checkcast javax.transaction.TransactionSynchronizationRegistry
            areturn
        14: .line 780
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // javax.transaction.TransactionManager tm
        end local 1 // javax.transaction.UserTransaction ut
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   15     1        ut  Ljavax/transaction/UserTransaction;
            0   15     2        tm  Ljavax/transaction/TransactionManager;
            2   10     3  jndiName  Ljava/lang/String;
            3    7     4       tsr  Ljavax/transaction/TransactionSynchronizationRegistry;
            8   10     4        ex  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2     6       7  Class javax.naming.NamingException
    Exceptions:
      throws org.springframework.transaction.TransactionSystemException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      ut    
      tm    

  protected java.lang.Object doGetTransaction();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 796
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getUserTransaction:()Ljavax/transaction/UserTransaction;
            astore 1 /* ut */
        start local 1 // javax.transaction.UserTransaction ut
         1: .line 797
            aload 1 /* ut */
            ifnonnull 3
         2: .line 798
            new org.springframework.transaction.CannotCreateTransactionException
            dup
            ldc "No JTA UserTransaction available - programmatic PlatformTransactionManager.getTransaction usage not supported"
            invokespecial org.springframework.transaction.CannotCreateTransactionException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 801
      StackMap locals: javax.transaction.UserTransaction
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.cacheUserTransaction:Z
            ifne 8
         4: .line 802
            aload 0 /* this */
         5: .line 803
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionName:Ljava/lang/String;
            ifnull 6
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.userTransactionName:Ljava/lang/String;
            goto 7
      StackMap locals:
      StackMap stack: org.springframework.transaction.jta.JtaTransactionManager
         6: ldc "java:comp/UserTransaction"
         7: .line 802
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager javax.transaction.UserTransaction
      StackMap stack: org.springframework.transaction.jta.JtaTransactionManager java.lang.String
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.lookupUserTransaction:(Ljava/lang/String;)Ljavax/transaction/UserTransaction;
            astore 1 /* ut */
         8: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ut */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.doGetJtaTransaction:(Ljavax/transaction/UserTransaction;)Lorg/springframework/transaction/jta/JtaTransactionObject;
            areturn
        end local 1 // javax.transaction.UserTransaction ut
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            1    9     1    ut  Ljavax/transaction/UserTransaction;

  protected org.springframework.transaction.jta.JtaTransactionObject doGetJtaTransaction(javax.transaction.UserTransaction);
    descriptor: (Ljavax/transaction/UserTransaction;)Lorg/springframework/transaction/jta/JtaTransactionObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // javax.transaction.UserTransaction ut
         0: .line 816
            new org.springframework.transaction.jta.JtaTransactionObject
            dup
            aload 1 /* ut */
            invokespecial org.springframework.transaction.jta.JtaTransactionObject.<init>:(Ljavax/transaction/UserTransaction;)V
            areturn
        end local 1 // javax.transaction.UserTransaction ut
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    1     1    ut  Ljavax/transaction/UserTransaction;
    MethodParameters:
      Name  Flags
      ut    

  protected boolean isExistingTransaction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.Object transaction
         0: .line 821
            aload 1 /* transaction */
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 2 /* txObject */
        start local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 823
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.getStatus:()I
            bipush 6
            if_icmpeq 2
            iconst_1
            ireturn
      StackMap locals: org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack:
         2: iconst_0
         3: ireturn
         4: .line 825
      StackMap locals:
      StackMap stack: javax.transaction.SystemException
            astore 3 /* ex */
        start local 3 // javax.transaction.SystemException ex
         5: .line 826
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "JTA failure on getStatus"
            aload 3 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // javax.transaction.SystemException ex
        end local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 1 // java.lang.Object transaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    6     1  transaction  Ljava/lang/Object;
            1    6     2     txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            5    6     3           ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           1     3       4  Class javax.transaction.SystemException
    MethodParameters:
             Name  Flags
      transaction  

  protected boolean useSavepointForNestedTransaction();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 840
            iconst_0
            ireturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;

  protected void doBegin(java.lang.Object, org.springframework.transaction.TransactionDefinition);
    descriptor: (Ljava/lang/Object;Lorg/springframework/transaction/TransactionDefinition;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.Object transaction
        start local 2 // org.springframework.transaction.TransactionDefinition definition
         0: .line 846
            aload 1 /* transaction */
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 3 /* txObject */
        start local 3 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 848
            aload 0 /* this */
            aload 3 /* txObject */
            aload 2 /* definition */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin:(Lorg/springframework/transaction/jta/JtaTransactionObject;Lorg/springframework/transaction/TransactionDefinition;)V
         2: .line 849
            goto 9
         3: .line 850
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager java.lang.Object org.springframework.transaction.TransactionDefinition org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
         4: .line 851
            new org.springframework.transaction.NestedTransactionNotSupportedException
            dup
         5: .line 852
            ldc "JTA implementation does not support nested transactions"
            aload 4 /* ex */
         6: .line 851
            invokespecial org.springframework.transaction.NestedTransactionNotSupportedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception ex
         7: .line 854
      StackMap locals:
      StackMap stack: javax.transaction.SystemException
            astore 4 /* ex */
        start local 4 // javax.transaction.SystemException ex
         8: .line 855
            new org.springframework.transaction.CannotCreateTransactionException
            dup
            ldc "JTA failure on begin"
            aload 4 /* ex */
            invokespecial org.springframework.transaction.CannotCreateTransactionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // javax.transaction.SystemException ex
         9: .line 857
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 2 // org.springframework.transaction.TransactionDefinition definition
        end local 1 // java.lang.Object transaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   10     1  transaction  Ljava/lang/Object;
            0   10     2   definition  Lorg/springframework/transaction/TransactionDefinition;
            1   10     3     txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            4    7     4           ex  Ljava/lang/Exception;
            8    9     4           ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           1     2       3  Class javax.transaction.NotSupportedException
           1     2       3  Class java.lang.UnsupportedOperationException
           1     2       7  Class javax.transaction.SystemException
    MethodParameters:
             Name  Flags
      transaction  
      definition   

  protected void doJtaBegin(org.springframework.transaction.jta.JtaTransactionObject, org.springframework.transaction.TransactionDefinition);
    descriptor: (Lorg/springframework/transaction/jta/JtaTransactionObject;Lorg/springframework/transaction/TransactionDefinition;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        start local 2 // org.springframework.transaction.TransactionDefinition definition
         0: .line 882
            aload 0 /* this */
            aload 1 /* txObject */
            aload 2 /* definition */
            invokeinterface org.springframework.transaction.TransactionDefinition.getIsolationLevel:()I
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.applyIsolationLevel:(Lorg/springframework/transaction/jta/JtaTransactionObject;I)V
         1: .line 883
            aload 0 /* this */
            aload 2 /* definition */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.determineTimeout:(Lorg/springframework/transaction/TransactionDefinition;)I
            istore 3 /* timeout */
        start local 3 // int timeout
         2: .line 884
            aload 0 /* this */
            aload 1 /* txObject */
            iload 3 /* timeout */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.applyTimeout:(Lorg/springframework/transaction/jta/JtaTransactionObject;I)V
         3: .line 885
            aload 1 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.begin:()V
         4: .line 886
            return
        end local 3 // int timeout
        end local 2 // org.springframework.transaction.TransactionDefinition definition
        end local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    5     1    txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            0    5     2  definition  Lorg/springframework/transaction/TransactionDefinition;
            2    5     3     timeout  I
    Exceptions:
      throws javax.transaction.NotSupportedException, javax.transaction.SystemException
    MethodParameters:
            Name  Flags
      txObject    
      definition  

  protected void applyIsolationLevel(org.springframework.transaction.jta.JtaTransactionObject, int);
    descriptor: (Lorg/springframework/transaction/jta/JtaTransactionObject;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        start local 2 // int isolationLevel
         0: .line 905
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.allowCustomIsolationLevels:Z
            ifne 4
            iload 2 /* isolationLevel */
            iconst_m1
            if_icmpeq 4
         1: .line 906
            new org.springframework.transaction.InvalidIsolationLevelException
            dup
         2: .line 907
            ldc "JtaTransactionManager does not support custom isolation levels by default - switch 'allowCustomIsolationLevels' to 'true'"
         3: .line 906
            invokespecial org.springframework.transaction.InvalidIsolationLevelException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 910
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int isolationLevel
        end local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    5     1        txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            0    5     2  isolationLevel  I
    Exceptions:
      throws org.springframework.transaction.InvalidIsolationLevelException, javax.transaction.SystemException
    MethodParameters:
                Name  Flags
      txObject        
      isolationLevel  

  protected void applyTimeout(org.springframework.transaction.jta.JtaTransactionObject, int);
    descriptor: (Lorg/springframework/transaction/jta/JtaTransactionObject;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        start local 2 // int timeout
         0: .line 923
            iload 2 /* timeout */
            iconst_m1
            if_icmple 4
         1: .line 924
            aload 1 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            iload 2 /* timeout */
            invokeinterface javax.transaction.UserTransaction.setTransactionTimeout:(I)V
         2: .line 925
            iload 2 /* timeout */
            ifle 4
         3: .line 926
            aload 1 /* txObject */
            iconst_1
            putfield org.springframework.transaction.jta.JtaTransactionObject.resetTransactionTimeout:Z
         4: .line 929
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int timeout
        end local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    5     1  txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            0    5     2   timeout  I
    Exceptions:
      throws javax.transaction.SystemException
    MethodParameters:
          Name  Flags
      txObject  
      timeout   

  protected java.lang.Object doSuspend(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.Object transaction
         0: .line 934
            aload 1 /* transaction */
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 2 /* txObject */
        start local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 936
            aload 0 /* this */
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.doJtaSuspend:(Lorg/springframework/transaction/jta/JtaTransactionObject;)Ljava/lang/Object;
         2: areturn
         3: .line 938
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager java.lang.Object org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack: javax.transaction.SystemException
            astore 3 /* ex */
        start local 3 // javax.transaction.SystemException ex
         4: .line 939
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "JTA failure on suspend"
            aload 3 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // javax.transaction.SystemException ex
        end local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 1 // java.lang.Object transaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    5     1  transaction  Ljava/lang/Object;
            1    5     2     txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            4    5     3           ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           1     2       3  Class javax.transaction.SystemException
    MethodParameters:
             Name  Flags
      transaction  

  protected java.lang.Object doJtaSuspend(org.springframework.transaction.jta.JtaTransactionObject);
    descriptor: (Lorg/springframework/transaction/jta/JtaTransactionObject;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
         0: .line 953
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getTransactionManager:()Ljavax/transaction/TransactionManager;
            ifnonnull 4
         1: .line 954
            new org.springframework.transaction.TransactionSuspensionNotSupportedException
            dup
         2: .line 955
            ldc "JtaTransactionManager needs a JTA TransactionManager for suspending a transaction: specify the 'transactionManager' or 'transactionManagerName' property"
         3: .line 954
            invokespecial org.springframework.transaction.TransactionSuspensionNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 958
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getTransactionManager:()Ljavax/transaction/TransactionManager;
            invokeinterface javax.transaction.TransactionManager.suspend:()Ljavax/transaction/Transaction;
            areturn
        end local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    5     1  txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
    Exceptions:
      throws javax.transaction.SystemException
    MethodParameters:
          Name  Flags
      txObject  

  protected void doResume(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.Object transaction
        start local 2 // java.lang.Object suspendedResources
         0: .line 963
            aload 1 /* transaction */
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 3 /* txObject */
        start local 3 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 965
            aload 0 /* this */
            aload 3 /* txObject */
            aload 2 /* suspendedResources */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.doJtaResume:(Lorg/springframework/transaction/jta/JtaTransactionObject;Ljava/lang/Object;)V
         2: .line 966
            goto 9
         3: .line 967
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager java.lang.Object java.lang.Object org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack: javax.transaction.InvalidTransactionException
            astore 4 /* ex */
        start local 4 // javax.transaction.InvalidTransactionException ex
         4: .line 968
            new org.springframework.transaction.IllegalTransactionStateException
            dup
            ldc "Tried to resume invalid JTA transaction"
            aload 4 /* ex */
            invokespecial org.springframework.transaction.IllegalTransactionStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // javax.transaction.InvalidTransactionException ex
         5: .line 970
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalStateException ex
         6: .line 971
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "Unexpected internal transaction state"
            aload 4 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalStateException ex
         7: .line 973
      StackMap locals:
      StackMap stack: javax.transaction.SystemException
            astore 4 /* ex */
        start local 4 // javax.transaction.SystemException ex
         8: .line 974
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "JTA failure on resume"
            aload 4 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // javax.transaction.SystemException ex
         9: .line 976
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 2 // java.lang.Object suspendedResources
        end local 1 // java.lang.Object transaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   10     0                this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   10     1         transaction  Ljava/lang/Object;
            0   10     2  suspendedResources  Ljava/lang/Object;
            1   10     3            txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            4    5     4                  ex  Ljavax/transaction/InvalidTransactionException;
            6    7     4                  ex  Ljava/lang/IllegalStateException;
            8    9     4                  ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           1     2       3  Class javax.transaction.InvalidTransactionException
           1     2       5  Class java.lang.IllegalStateException
           1     2       7  Class javax.transaction.SystemException
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
                    Name  Flags
      transaction         
      suspendedResources  

  protected void doJtaResume(org.springframework.transaction.jta.JtaTransactionObject, java.lang.Object);
    descriptor: (Lorg/springframework/transaction/jta/JtaTransactionObject;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        start local 2 // java.lang.Object suspendedTransaction
         0: .line 991
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getTransactionManager:()Ljavax/transaction/TransactionManager;
            ifnonnull 4
         1: .line 992
            new org.springframework.transaction.TransactionSuspensionNotSupportedException
            dup
         2: .line 993
            ldc "JtaTransactionManager needs a JTA TransactionManager for suspending a transaction: specify the 'transactionManager' or 'transactionManagerName' property"
         3: .line 992
            invokespecial org.springframework.transaction.TransactionSuspensionNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getTransactionManager:()Ljavax/transaction/TransactionManager;
            aload 2 /* suspendedTransaction */
            checkcast javax.transaction.Transaction
            invokeinterface javax.transaction.TransactionManager.resume:(Ljavax/transaction/Transaction;)V
         5: .line 997
            return
        end local 2 // java.lang.Object suspendedTransaction
        end local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    6     0                  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    6     1              txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            0    6     2  suspendedTransaction  Ljava/lang/Object;
    Exceptions:
      throws javax.transaction.InvalidTransactionException, javax.transaction.SystemException
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
                      Name  Flags
      txObject              
      suspendedTransaction  

  protected boolean shouldCommitOnGlobalRollbackOnly();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 1006
            iconst_1
            ireturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;

  protected void doCommit(org.springframework.transaction.support.DefaultTransactionStatus);
    descriptor: (Lorg/springframework/transaction/support/DefaultTransactionStatus;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.support.DefaultTransactionStatus status
         0: .line 1011
            aload 1 /* status */
            invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.getTransaction:()Ljava/lang/Object;
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 2 /* txObject */
        start local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 1013
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.getStatus:()I
            istore 3 /* jtaStatus */
        start local 3 // int jtaStatus
         2: .line 1014
            iload 3 /* jtaStatus */
            bipush 6
            if_icmpne 4
         3: .line 1018
            new org.springframework.transaction.UnexpectedRollbackException
            dup
            ldc "JTA transaction already completed - probably rolled back"
            invokespecial org.springframework.transaction.UnexpectedRollbackException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1020
      StackMap locals: org.springframework.transaction.jta.JtaTransactionObject int
      StackMap stack:
            iload 3 /* jtaStatus */
            iconst_4
            if_icmpne 11
         5: .line 1025
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.rollback:()V
         6: .line 1026
            goto 10
         7: .line 1027
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalStateException ex
         8: .line 1028
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 10
         9: .line 1029
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Rollback failure with transaction already marked as rolled back: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* ex */
            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
        end local 4 // java.lang.IllegalStateException ex
        10: .line 1032
      StackMap locals:
      StackMap stack:
            new org.springframework.transaction.UnexpectedRollbackException
            dup
            ldc "JTA transaction already rolled back (probably due to a timeout)"
            invokespecial org.springframework.transaction.UnexpectedRollbackException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1034
      StackMap locals:
      StackMap stack:
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.commit:()V
        end local 3 // int jtaStatus
        12: .line 1035
            goto 25
        13: .line 1036
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack: javax.transaction.RollbackException
            astore 3 /* ex */
        start local 3 // javax.transaction.RollbackException ex
        14: .line 1037
            new org.springframework.transaction.UnexpectedRollbackException
            dup
        15: .line 1038
            ldc "JTA transaction unexpectedly rolled back (maybe due to a timeout)"
            aload 3 /* ex */
        16: .line 1037
            invokespecial org.springframework.transaction.UnexpectedRollbackException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // javax.transaction.RollbackException ex
        17: .line 1040
      StackMap locals:
      StackMap stack: javax.transaction.HeuristicMixedException
            astore 3 /* ex */
        start local 3 // javax.transaction.HeuristicMixedException ex
        18: .line 1041
            new org.springframework.transaction.HeuristicCompletionException
            dup
            iconst_3
            aload 3 /* ex */
            invokespecial org.springframework.transaction.HeuristicCompletionException.<init>:(ILjava/lang/Throwable;)V
            athrow
        end local 3 // javax.transaction.HeuristicMixedException ex
        19: .line 1043
      StackMap locals:
      StackMap stack: javax.transaction.HeuristicRollbackException
            astore 3 /* ex */
        start local 3 // javax.transaction.HeuristicRollbackException ex
        20: .line 1044
            new org.springframework.transaction.HeuristicCompletionException
            dup
            iconst_2
            aload 3 /* ex */
            invokespecial org.springframework.transaction.HeuristicCompletionException.<init>:(ILjava/lang/Throwable;)V
            athrow
        end local 3 // javax.transaction.HeuristicRollbackException ex
        21: .line 1046
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 3 /* ex */
        start local 3 // java.lang.IllegalStateException ex
        22: .line 1047
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "Unexpected internal transaction state"
            aload 3 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.IllegalStateException ex
        23: .line 1049
      StackMap locals:
      StackMap stack: javax.transaction.SystemException
            astore 3 /* ex */
        start local 3 // javax.transaction.SystemException ex
        24: .line 1050
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "JTA failure on commit"
            aload 3 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // javax.transaction.SystemException ex
        25: .line 1052
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 1 // org.springframework.transaction.support.DefaultTransactionStatus status
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0       this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   26     1     status  Lorg/springframework/transaction/support/DefaultTransactionStatus;
            1   26     2   txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            2   12     3  jtaStatus  I
            8   10     4         ex  Ljava/lang/IllegalStateException;
           14   17     3         ex  Ljavax/transaction/RollbackException;
           18   19     3         ex  Ljavax/transaction/HeuristicMixedException;
           20   21     3         ex  Ljavax/transaction/HeuristicRollbackException;
           22   23     3         ex  Ljava/lang/IllegalStateException;
           24   25     3         ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.IllegalStateException
           1    12      13  Class javax.transaction.RollbackException
           1    12      17  Class javax.transaction.HeuristicMixedException
           1    12      19  Class javax.transaction.HeuristicRollbackException
           1    12      21  Class java.lang.IllegalStateException
           1    12      23  Class javax.transaction.SystemException
    MethodParameters:
        Name  Flags
      status  

  protected void doRollback(org.springframework.transaction.support.DefaultTransactionStatus);
    descriptor: (Lorg/springframework/transaction/support/DefaultTransactionStatus;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.support.DefaultTransactionStatus status
         0: .line 1056
            aload 1 /* status */
            invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.getTransaction:()Ljava/lang/Object;
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 2 /* txObject */
        start local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 1058
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.getStatus:()I
            istore 3 /* jtaStatus */
        start local 3 // int jtaStatus
         2: .line 1059
            iload 3 /* jtaStatus */
            bipush 6
            if_icmpeq 13
         3: .line 1061
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.rollback:()V
         4: .line 1062
            goto 13
         5: .line 1063
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.transaction.jta.JtaTransactionObject int
      StackMap stack: java.lang.IllegalStateException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalStateException ex
         6: .line 1064
            iload 3 /* jtaStatus */
            iconst_4
            if_icmpne 10
         7: .line 1066
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 13
         8: .line 1067
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Rollback failure with transaction already marked as rolled back: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* ex */
            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
         9: .line 1069
            goto 13
        10: .line 1071
      StackMap locals: java.lang.IllegalStateException
      StackMap stack:
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "Unexpected internal transaction state"
            aload 4 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalStateException ex
        end local 3 // int jtaStatus
        11: .line 1076
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager org.springframework.transaction.support.DefaultTransactionStatus org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack: javax.transaction.SystemException
            astore 3 /* ex */
        start local 3 // javax.transaction.SystemException ex
        12: .line 1077
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "JTA failure on rollback"
            aload 3 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // javax.transaction.SystemException ex
        13: .line 1079
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 1 // org.springframework.transaction.support.DefaultTransactionStatus status
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   14     1     status  Lorg/springframework/transaction/support/DefaultTransactionStatus;
            1   14     2   txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            2   11     3  jtaStatus  I
            6   11     4         ex  Ljava/lang/IllegalStateException;
           12   13     3         ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.IllegalStateException
           1    11      11  Class javax.transaction.SystemException
    MethodParameters:
        Name  Flags
      status  

  protected void doSetRollbackOnly(org.springframework.transaction.support.DefaultTransactionStatus);
    descriptor: (Lorg/springframework/transaction/support/DefaultTransactionStatus;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.support.DefaultTransactionStatus status
         0: .line 1083
            aload 1 /* status */
            invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.getTransaction:()Ljava/lang/Object;
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 2 /* txObject */
        start local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 1084
            aload 1 /* status */
            invokevirtual org.springframework.transaction.support.DefaultTransactionStatus.isDebug:()Z
            ifeq 3
         2: .line 1085
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            ldc "Setting JTA transaction rollback-only"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         3: .line 1088
      StackMap locals: org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack:
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.getStatus:()I
            istore 3 /* jtaStatus */
        start local 3 // int jtaStatus
         4: .line 1089
            iload 3 /* jtaStatus */
            bipush 6
            if_icmpeq 11
            iload 3 /* jtaStatus */
            iconst_4
            if_icmpeq 11
         5: .line 1090
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.setRollbackOnly:()V
        end local 3 // int jtaStatus
         6: .line 1092
            goto 11
         7: .line 1093
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 3 /* ex */
        start local 3 // java.lang.IllegalStateException ex
         8: .line 1094
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "Unexpected internal transaction state"
            aload 3 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.IllegalStateException ex
         9: .line 1096
      StackMap locals:
      StackMap stack: javax.transaction.SystemException
            astore 3 /* ex */
        start local 3 // javax.transaction.SystemException ex
        10: .line 1097
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "JTA failure on setRollbackOnly"
            aload 3 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // javax.transaction.SystemException ex
        11: .line 1099
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 1 // org.springframework.transaction.support.DefaultTransactionStatus status
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   12     1     status  Lorg/springframework/transaction/support/DefaultTransactionStatus;
            1   12     2   txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            4    6     3  jtaStatus  I
            8    9     3         ex  Ljava/lang/IllegalStateException;
           10   11     3         ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.IllegalStateException
           3     6       9  Class javax.transaction.SystemException
    MethodParameters:
        Name  Flags
      status  

  protected void registerAfterCompletionWithExistingTransaction(, java.util.List<org.springframework.transaction.support.TransactionSynchronization>);
    descriptor: (Ljava/lang/Object;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.Object transaction
        start local 2 // java.util.List synchronizations
         0: .line 1106
            aload 1 /* transaction */
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 3 /* txObject */
        start local 3 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 1107
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            ldc "Registering after-completion synchronization with existing JTA transaction"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         2: .line 1109
            aload 0 /* this */
            aload 3 /* txObject */
            aload 2 /* synchronizations */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCompletionWithJtaTransaction:(Lorg/springframework/transaction/jta/JtaTransactionObject;Ljava/util/List;)V
         3: .line 1110
            goto 17
         4: .line 1111
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager java.lang.Object java.util.List org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack: javax.transaction.SystemException
            astore 4 /* ex */
        start local 4 // javax.transaction.SystemException ex
         5: .line 1112
            new org.springframework.transaction.TransactionSystemException
            dup
            ldc "JTA failure on registerSynchronization"
            aload 4 /* ex */
            invokespecial org.springframework.transaction.TransactionSystemException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // javax.transaction.SystemException ex
         6: .line 1114
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
         7: .line 1116
            aload 4 /* ex */
            instanceof javax.transaction.RollbackException
            ifne 8
            aload 4 /* ex */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            instanceof javax.transaction.RollbackException
            ifeq 13
         8: .line 1117
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Participating in existing JTA transaction that has been marked for rollback: cannot register Spring after-completion callbacks with outer JTA transaction - immediately performing Spring after-completion callbacks with outcome status 'rollback'. Original exception: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 1120
            aload 4 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 1117
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        11: .line 1121
            aload 0 /* this */
            aload 2 /* synchronizations */
            iconst_1
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.invokeAfterCompletion:(Ljava/util/List;I)V
        12: .line 1122
            goto 17
        13: .line 1124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Participating in existing JTA transaction, but unexpected internal transaction state encountered: cannot register Spring after-completion callbacks with outer JTA transaction - processing Spring after-completion callbacks with outcome status 'unknown'Original exception: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 1127
            aload 4 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 1124
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        16: .line 1128
            aload 0 /* this */
            aload 2 /* synchronizations */
            iconst_2
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.invokeAfterCompletion:(Ljava/util/List;I)V
        end local 4 // java.lang.Exception ex
        17: .line 1131
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 2 // java.util.List synchronizations
        end local 1 // java.lang.Object transaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   18     1       transaction  Ljava/lang/Object;
            0   18     2  synchronizations  Ljava/util/List<Lorg/springframework/transaction/support/TransactionSynchronization;>;
            1   18     3          txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            5    6     4                ex  Ljavax/transaction/SystemException;
            7   17     4                ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class javax.transaction.SystemException
           2     3       6  Class java.lang.Exception
    Signature: (Ljava/lang/Object;Ljava/util/List<Lorg/springframework/transaction/support/TransactionSynchronization;>;)V
    MethodParameters:
                  Name  Flags
      transaction       
      synchronizations  

  protected void doRegisterAfterCompletionWithJtaTransaction(org.springframework.transaction.jta.JtaTransactionObject, java.util.List<org.springframework.transaction.support.TransactionSynchronization>);
    descriptor: (Lorg/springframework/transaction/jta/JtaTransactionObject;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        start local 2 // java.util.List synchronizations
         0: .line 1153
            aload 1 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            invokeinterface javax.transaction.UserTransaction.getStatus:()I
            istore 3 /* jtaStatus */
        start local 3 // int jtaStatus
         1: .line 1154
            iload 3 /* jtaStatus */
            bipush 6
            if_icmpne 3
         2: .line 1155
            new javax.transaction.RollbackException
            dup
            ldc "JTA transaction already completed - probably rolled back"
            invokespecial javax.transaction.RollbackException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1157
      StackMap locals: int
      StackMap stack:
            iload 3 /* jtaStatus */
            iconst_4
            if_icmpne 5
         4: .line 1158
            new javax.transaction.RollbackException
            dup
            ldc "JTA transaction already rolled back (probably due to a timeout)"
            invokespecial javax.transaction.RollbackException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
            ifnull 10
         6: .line 1163
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.transactionSynchronizationRegistry:Ljavax/transaction/TransactionSynchronizationRegistry;
         7: .line 1164
            new org.springframework.transaction.jta.JtaAfterCompletionSynchronization
            dup
            aload 2 /* synchronizations */
            invokespecial org.springframework.transaction.jta.JtaAfterCompletionSynchronization.<init>:(Ljava/util/List;)V
         8: .line 1163
            invokeinterface javax.transaction.TransactionSynchronizationRegistry.registerInterposedSynchronization:(Ljavax/transaction/Synchronization;)V
         9: .line 1165
            goto 18
        10: .line 1167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getTransactionManager:()Ljavax/transaction/TransactionManager;
            ifnull 16
        11: .line 1169
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getTransactionManager:()Ljavax/transaction/TransactionManager;
            invokeinterface javax.transaction.TransactionManager.getTransaction:()Ljavax/transaction/Transaction;
            astore 4 /* transaction */
        start local 4 // javax.transaction.Transaction transaction
        12: .line 1170
            aload 4 /* transaction */
            ifnonnull 14
        13: .line 1171
            new java.lang.IllegalStateException
            dup
            ldc "No JTA Transaction available"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 1173
      StackMap locals: javax.transaction.Transaction
      StackMap stack:
            aload 4 /* transaction */
            new org.springframework.transaction.jta.JtaAfterCompletionSynchronization
            dup
            aload 2 /* synchronizations */
            invokespecial org.springframework.transaction.jta.JtaAfterCompletionSynchronization.<init>:(Ljava/util/List;)V
            invokeinterface javax.transaction.Transaction.registerSynchronization:(Ljavax/transaction/Synchronization;)V
        end local 4 // javax.transaction.Transaction transaction
        15: .line 1174
            goto 18
        16: .line 1178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            ldc "Participating in existing JTA transaction, but no JTA TransactionManager available: cannot register Spring after-completion callbacks with outer JTA transaction - processing Spring after-completion callbacks with outcome status 'unknown'"
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
        17: .line 1181
            aload 0 /* this */
            aload 2 /* synchronizations */
            iconst_2
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.invokeAfterCompletion:(Ljava/util/List;I)V
        18: .line 1183
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int jtaStatus
        end local 2 // java.util.List synchronizations
        end local 1 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0   19     1          txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            0   19     2  synchronizations  Ljava/util/List<Lorg/springframework/transaction/support/TransactionSynchronization;>;
            1   19     3         jtaStatus  I
           12   15     4       transaction  Ljavax/transaction/Transaction;
    Exceptions:
      throws javax.transaction.RollbackException, javax.transaction.SystemException
    Signature: (Lorg/springframework/transaction/jta/JtaTransactionObject;Ljava/util/List<Lorg/springframework/transaction/support/TransactionSynchronization;>;)V
    MethodParameters:
                  Name  Flags
      txObject          
      synchronizations  

  protected void doCleanupAfterCompletion(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.Object transaction
         0: .line 1187
            aload 1 /* transaction */
            checkcast org.springframework.transaction.jta.JtaTransactionObject
            astore 2 /* txObject */
        start local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
         1: .line 1188
            aload 2 /* txObject */
            getfield org.springframework.transaction.jta.JtaTransactionObject.resetTransactionTimeout:Z
            ifeq 6
         2: .line 1190
            aload 2 /* txObject */
            invokevirtual org.springframework.transaction.jta.JtaTransactionObject.getUserTransaction:()Ljavax/transaction/UserTransaction;
            iconst_0
            invokeinterface javax.transaction.UserTransaction.setTransactionTimeout:(I)V
         3: .line 1191
            goto 6
         4: .line 1192
      StackMap locals: org.springframework.transaction.jta.JtaTransactionManager java.lang.Object org.springframework.transaction.jta.JtaTransactionObject
      StackMap stack: javax.transaction.SystemException
            astore 3 /* ex */
        start local 3 // javax.transaction.SystemException ex
         5: .line 1193
            aload 0 /* this */
            getfield org.springframework.transaction.jta.JtaTransactionManager.logger:Lorg/apache/commons/logging/Log;
            ldc "Failed to reset transaction timeout after JTA completion"
            aload 3 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // javax.transaction.SystemException ex
         6: .line 1196
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.springframework.transaction.jta.JtaTransactionObject txObject
        end local 1 // java.lang.Object transaction
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    7     1  transaction  Ljava/lang/Object;
            1    7     2     txObject  Lorg/springframework/transaction/jta/JtaTransactionObject;
            5    6     3           ex  Ljavax/transaction/SystemException;
      Exception table:
        from    to  target  type
           2     3       4  Class javax.transaction.SystemException
    MethodParameters:
             Name  Flags
      transaction  

  public javax.transaction.Transaction createTransaction(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljavax/transaction/Transaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.lang.String name
        start local 2 // int timeout
         0: .line 1205
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.getTransactionManager:()Ljavax/transaction/TransactionManager;
            astore 3 /* tm */
        start local 3 // javax.transaction.TransactionManager tm
         1: .line 1206
            aload 3 /* tm */
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: javax.transaction.TransactionManager
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "No JTA TransactionManager available"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         4: .line 1207
            iload 2 /* timeout */
            iflt 6
         5: .line 1208
            aload 3 /* tm */
            iload 2 /* timeout */
            invokeinterface javax.transaction.TransactionManager.setTransactionTimeout:(I)V
         6: .line 1210
      StackMap locals:
      StackMap stack:
            aload 3 /* tm */
            invokeinterface javax.transaction.TransactionManager.begin:()V
         7: .line 1211
            new org.springframework.transaction.jta.ManagedTransactionAdapter
            dup
            aload 3 /* tm */
            invokespecial org.springframework.transaction.jta.ManagedTransactionAdapter.<init>:(Ljavax/transaction/TransactionManager;)V
            areturn
        end local 3 // javax.transaction.TransactionManager tm
        end local 2 // int timeout
        end local 1 // java.lang.String name
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    8     1     name  Ljava/lang/String;
            0    8     2  timeout  I
            1    8     3       tm  Ljavax/transaction/TransactionManager;
    Exceptions:
      throws javax.transaction.NotSupportedException, javax.transaction.SystemException
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
         Name  Flags
      name     
      timeout  

  public boolean supportsResourceAdapterManagedTransactions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
         0: .line 1216
            iconst_0
            ireturn
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.transaction.jta.JtaTransactionManager this
        start local 1 // java.io.ObjectInputStream ois
         0: .line 1226
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 1229
            aload 0 /* this */
            new org.springframework.jndi.JndiTemplate
            dup
            invokespecial org.springframework.jndi.JndiTemplate.<init>:()V
            putfield org.springframework.transaction.jta.JtaTransactionManager.jndiTemplate:Lorg/springframework/jndi/JndiTemplate;
         2: .line 1232
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.initUserTransactionAndTransactionManager:()V
         3: .line 1233
            aload 0 /* this */
            invokevirtual org.springframework.transaction.jta.JtaTransactionManager.initTransactionSynchronizationRegistry:()V
         4: .line 1234
            return
        end local 1 // java.io.ObjectInputStream ois
        end local 0 // org.springframework.transaction.jta.JtaTransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/transaction/jta/JtaTransactionManager;
            0    5     1   ois  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      ois   
}
SourceFile: "JtaTransactionManager.java"