class org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject extends org.springframework.jdbc.datasource.JdbcTransactionObjectSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject
  super_class: org.springframework.jdbc.datasource.JdbcTransactionObjectSupport
{
  private org.springframework.orm.jpa.EntityManagerHolder entityManagerHolder;
    descriptor: Lorg/springframework/orm/jpa/EntityManagerHolder;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

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

  final org.springframework.orm.jpa.JpaTransactionManager this$0;
    descriptor: Lorg/springframework/orm/jpa/JpaTransactionManager;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(org.springframework.orm.jpa.JpaTransactionManager);
    descriptor: (Lorg/springframework/orm/jpa/JpaTransactionManager;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 632
            aload 0 /* this */
            aload 1
            putfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.this$0:Lorg/springframework/orm/jpa/JpaTransactionManager;
            aload 0 /* this */
            invokespecial org.springframework.jdbc.datasource.JdbcTransactionObjectSupport.<init>:()V
            return
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
    MethodParameters:
        Name  Flags
      this$0  final

  public void setEntityManagerHolder(org.springframework.orm.jpa.EntityManagerHolder, boolean);
    descriptor: (Lorg/springframework/orm/jpa/EntityManagerHolder;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
        start local 1 // org.springframework.orm.jpa.EntityManagerHolder entityManagerHolder
        start local 2 // boolean newEntityManagerHolder
         0: .line 645
            aload 0 /* this */
            aload 1 /* entityManagerHolder */
            putfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.entityManagerHolder:Lorg/springframework/orm/jpa/EntityManagerHolder;
         1: .line 646
            aload 0 /* this */
            iload 2 /* newEntityManagerHolder */
            putfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.newEntityManagerHolder:Z
         2: .line 647
            return
        end local 2 // boolean newEntityManagerHolder
        end local 1 // org.springframework.orm.jpa.EntityManagerHolder entityManagerHolder
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
            0    3     1     entityManagerHolder  Lorg/springframework/orm/jpa/EntityManagerHolder;
            0    3     2  newEntityManagerHolder  Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
                        Name  Flags
      entityManagerHolder     
      newEntityManagerHolder  

  public org.springframework.orm.jpa.EntityManagerHolder getEntityManagerHolder();
    descriptor: ()Lorg/springframework/orm/jpa/EntityManagerHolder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 650
            aload 0 /* this */
            getfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.entityManagerHolder:Lorg/springframework/orm/jpa/EntityManagerHolder;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "No EntityManagerHolder available"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         3: .line 651
            aload 0 /* this */
            getfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.entityManagerHolder:Lorg/springframework/orm/jpa/EntityManagerHolder;
            areturn
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;

  public boolean hasEntityManagerHolder();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 655
            aload 0 /* this */
            getfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.entityManagerHolder:Lorg/springframework/orm/jpa/EntityManagerHolder;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;

  public boolean isNewEntityManagerHolder();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 659
            aload 0 /* this */
            getfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.newEntityManagerHolder:Z
            ireturn
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;

  public boolean hasTransaction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 663
            aload 0 /* this */
            getfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.entityManagerHolder:Lorg/springframework/orm/jpa/EntityManagerHolder;
            ifnull 1
            aload 0 /* this */
            getfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.entityManagerHolder:Lorg/springframework/orm/jpa/EntityManagerHolder;
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.isTransactionActive:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;

  public void setTransactionData(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
        start local 1 // java.lang.Object transactionData
         0: .line 667
            aload 0 /* this */
            aload 1 /* transactionData */
            putfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.transactionData:Ljava/lang/Object;
         1: .line 668
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
            iconst_1
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.setTransactionActive:(Z)V
         2: .line 669
            aload 1 /* transactionData */
            instanceof org.springframework.transaction.SavepointManager
            ifeq 4
         3: .line 670
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
            aload 1 /* transactionData */
            checkcast org.springframework.transaction.SavepointManager
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.setSavepointManager:(Lorg/springframework/transaction/SavepointManager;)V
         4: .line 672
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object transactionData
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
            0    5     1  transactionData  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      transactionData  

  public java.lang.Object getTransactionData();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 676
            aload 0 /* this */
            getfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.transactionData:Ljava/lang/Object;
            areturn
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setRollbackOnly();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 680
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
            invokeinterface javax.persistence.EntityManager.getTransaction:()Ljavax/persistence/EntityTransaction;
            astore 1 /* tx */
        start local 1 // javax.persistence.EntityTransaction tx
         1: .line 681
            aload 1 /* tx */
            invokeinterface javax.persistence.EntityTransaction.isActive:()Z
            ifeq 3
         2: .line 682
            aload 1 /* tx */
            invokeinterface javax.persistence.EntityTransaction.setRollbackOnly:()V
         3: .line 684
      StackMap locals: javax.persistence.EntityTransaction
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.hasConnectionHolder:()Z
            ifeq 5
         4: .line 685
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getConnectionHolder:()Lorg/springframework/jdbc/datasource/ConnectionHolder;
            invokevirtual org.springframework.jdbc.datasource.ConnectionHolder.setRollbackOnly:()V
         5: .line 687
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.persistence.EntityTransaction tx
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
            1    6     1    tx  Ljavax/persistence/EntityTransaction;

  public boolean isRollbackOnly();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 691
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
            invokeinterface javax.persistence.EntityManager.getTransaction:()Ljavax/persistence/EntityTransaction;
            astore 1 /* tx */
        start local 1 // javax.persistence.EntityTransaction tx
         1: .line 692
            aload 1 /* tx */
            invokeinterface javax.persistence.EntityTransaction.getRollbackOnly:()Z
            ireturn
        end local 1 // javax.persistence.EntityTransaction tx
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
            1    2     1    tx  Ljavax/persistence/EntityTransaction;

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 698
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
            invokeinterface javax.persistence.EntityManager.flush:()V
         1: .line 699
            goto 4
         2: .line 700
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 1 /* ex */
        start local 1 // java.lang.RuntimeException ex
         3: .line 701
            aload 1 /* ex */
            aload 0 /* this */
            getfield org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.this$0:Lorg/springframework/orm/jpa/JpaTransactionManager;
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
            invokestatic org.springframework.dao.support.DataAccessUtils.translateIfNecessary:(Ljava/lang/RuntimeException;Lorg/springframework/dao/support/PersistenceExceptionTranslator;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.RuntimeException ex
         4: .line 703
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
            3    4     1    ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.RuntimeException

  public java.lang.Object createSavepoint();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 707
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.isRollbackOnly:()Z
            ifeq 4
         1: .line 708
            new org.springframework.transaction.CannotCreateTransactionException
            dup
         2: .line 709
            ldc "Cannot create savepoint for transaction which is already marked as rollback-only"
         3: .line 708
            invokespecial org.springframework.transaction.CannotCreateTransactionException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getSavepointManager:()Lorg/springframework/transaction/SavepointManager;
            invokeinterface org.springframework.transaction.SavepointManager.createSavepoint:()Ljava/lang/Object;
            areturn
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
    Exceptions:
      throws org.springframework.transaction.TransactionException

  public void rollbackToSavepoint(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
        start local 1 // java.lang.Object savepoint
         0: .line 716
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getSavepointManager:()Lorg/springframework/transaction/SavepointManager;
            aload 1 /* savepoint */
            invokeinterface org.springframework.transaction.SavepointManager.rollbackToSavepoint:(Ljava/lang/Object;)V
         1: .line 717
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.resetRollbackOnly:()V
         2: .line 718
            return
        end local 1 // java.lang.Object savepoint
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
            0    3     1  savepoint  Ljava/lang/Object;
    Exceptions:
      throws org.springframework.transaction.TransactionException
    MethodParameters:
           Name  Flags
      savepoint  

  public void releaseSavepoint(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
        start local 1 // java.lang.Object savepoint
         0: .line 722
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getSavepointManager:()Lorg/springframework/transaction/SavepointManager;
            aload 1 /* savepoint */
            invokeinterface org.springframework.transaction.SavepointManager.releaseSavepoint:(Ljava/lang/Object;)V
         1: .line 723
            return
        end local 1 // java.lang.Object savepoint
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
            0    2     1  savepoint  Ljava/lang/Object;
    Exceptions:
      throws org.springframework.transaction.TransactionException
    MethodParameters:
           Name  Flags
      savepoint  

  private org.springframework.transaction.SavepointManager getSavepointManager();
    descriptor: ()Lorg/springframework/transaction/SavepointManager;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
         0: .line 726
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.isSavepointAllowed:()Z
            ifne 4
         1: .line 727
            new org.springframework.transaction.NestedTransactionNotSupportedException
            dup
         2: .line 728
            ldc "Transaction manager does not allow nested transactions"
         3: .line 727
            invokespecial org.springframework.transaction.NestedTransactionNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.getEntityManagerHolder:()Lorg/springframework/orm/jpa/EntityManagerHolder;
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getSavepointManager:()Lorg/springframework/transaction/SavepointManager;
            astore 1 /* savepointManager */
        start local 1 // org.springframework.transaction.SavepointManager savepointManager
         5: .line 731
            aload 1 /* savepointManager */
            ifnonnull 9
         6: .line 732
            new org.springframework.transaction.NestedTransactionNotSupportedException
            dup
         7: .line 733
            ldc "JpaDialect does not support savepoints - check your JPA provider's capabilities"
         8: .line 732
            invokespecial org.springframework.transaction.NestedTransactionNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 735
      StackMap locals: org.springframework.transaction.SavepointManager
      StackMap stack:
            aload 1 /* savepointManager */
            areturn
        end local 1 // org.springframework.transaction.SavepointManager savepointManager
        end local 0 // org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lorg/springframework/orm/jpa/JpaTransactionManager$JpaTransactionObject;
            5   10     1  savepointManager  Lorg/springframework/transaction/SavepointManager;
}
SourceFile: "JpaTransactionManager.java"
NestHost: org.springframework.orm.jpa.JpaTransactionManager
InnerClasses:
  private JpaTransactionObject = org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject of org.springframework.orm.jpa.JpaTransactionManager