class org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization extends org.springframework.transaction.support.ResourceHolderSynchronization<org.springframework.orm.jpa.EntityManagerHolder, javax.persistence.EntityManagerFactory> implements org.springframework.core.Ordered
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization
  super_class: org.springframework.transaction.support.ResourceHolderSynchronization
{
  private final java.lang.Object transactionData;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final org.springframework.orm.jpa.JpaDialect jpaDialect;
    descriptor: Lorg/springframework/orm/jpa/JpaDialect;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final boolean newEntityManager;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.springframework.orm.jpa.EntityManagerHolder, javax.persistence.EntityManagerFactory, java.lang.Object, boolean);
    descriptor: (Lorg/springframework/orm/jpa/EntityManagerHolder;Ljavax/persistence/EntityManagerFactory;Ljava/lang/Object;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
        start local 1 // org.springframework.orm.jpa.EntityManagerHolder emHolder
        start local 2 // javax.persistence.EntityManagerFactory emf
        start local 3 // java.lang.Object txData
        start local 4 // boolean newEm
         0: .line 460
            aload 0 /* this */
            aload 1 /* emHolder */
            aload 2 /* emf */
            invokespecial org.springframework.transaction.support.ResourceHolderSynchronization.<init>:(Lorg/springframework/transaction/support/ResourceHolder;Ljava/lang/Object;)V
         1: .line 461
            aload 0 /* this */
            aload 3 /* txData */
            putfield org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.transactionData:Ljava/lang/Object;
         2: .line 462
            aload 0 /* this */
            aload 2 /* emf */
            instanceof org.springframework.orm.jpa.EntityManagerFactoryInfo
            ifeq 4
         3: .line 463
            aload 2 /* emf */
            checkcast org.springframework.orm.jpa.EntityManagerFactoryInfo
            invokeinterface org.springframework.orm.jpa.EntityManagerFactoryInfo.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
            goto 5
      StackMap locals: org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization org.springframework.orm.jpa.EntityManagerHolder javax.persistence.EntityManagerFactory java.lang.Object int
      StackMap stack: org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization
         4: aconst_null
         5: .line 462
      StackMap locals: org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization org.springframework.orm.jpa.EntityManagerHolder javax.persistence.EntityManagerFactory java.lang.Object int
      StackMap stack: org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization org.springframework.orm.jpa.JpaDialect
            putfield org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
         6: .line 464
            aload 0 /* this */
            iload 4 /* newEm */
            putfield org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.newEntityManager:Z
         7: .line 465
            return
        end local 4 // boolean newEm
        end local 3 // java.lang.Object txData
        end local 2 // javax.persistence.EntityManagerFactory emf
        end local 1 // org.springframework.orm.jpa.EntityManagerHolder emHolder
        end local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/springframework/orm/jpa/EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization;
            0    8     1  emHolder  Lorg/springframework/orm/jpa/EntityManagerHolder;
            0    8     2       emf  Ljavax/persistence/EntityManagerFactory;
            0    8     3    txData  Ljava/lang/Object;
            0    8     4     newEm  Z
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.springframework.lang.Nullable()
      3:
    MethodParameters:
          Name  Flags
      emHolder  
      emf       
      txData    
      newEm     

  public int getOrder();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
         0: .line 469
            sipush 900
            ireturn
        end local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization;

  protected void flushResource(org.springframework.orm.jpa.EntityManagerHolder);
    descriptor: (Lorg/springframework/orm/jpa/EntityManagerHolder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
        start local 1 // org.springframework.orm.jpa.EntityManagerHolder resourceHolder
         0: .line 474
            aload 1 /* resourceHolder */
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
            astore 2 /* em */
        start local 2 // javax.persistence.EntityManager em
         1: .line 475
            aload 2 /* em */
            instanceof org.springframework.orm.jpa.EntityManagerProxy
            ifeq 5
         2: .line 476
            aload 2 /* em */
            checkcast org.springframework.orm.jpa.EntityManagerProxy
            invokeinterface org.springframework.orm.jpa.EntityManagerProxy.getTargetEntityManager:()Ljavax/persistence/EntityManager;
            astore 3 /* target */
        start local 3 // javax.persistence.EntityManager target
         3: .line 477
            aload 3 /* target */
            invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.hasResource:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 480
            return
        end local 3 // javax.persistence.EntityManager target
         5: .line 484
      StackMap locals: javax.persistence.EntityManager
      StackMap stack:
            aload 2 /* em */
            invokeinterface javax.persistence.EntityManager.flush:()V
         6: .line 485
            goto 15
         7: .line 486
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* ex */
        start local 3 // java.lang.RuntimeException ex
         8: .line 488
            aload 0 /* this */
            getfield org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
            ifnull 11
         9: .line 489
            aload 0 /* this */
            getfield org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
            aload 3 /* ex */
            invokeinterface org.springframework.orm.jpa.JpaDialect.translateExceptionIfPossible:(Ljava/lang/RuntimeException;)Lorg/springframework/dao/DataAccessException;
            astore 4 /* dae */
        start local 4 // org.springframework.dao.DataAccessException dae
        10: .line 490
            goto 12
        end local 4 // org.springframework.dao.DataAccessException dae
        11: .line 492
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 3 /* ex */
            invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible:(Ljava/lang/RuntimeException;)Lorg/springframework/dao/DataAccessException;
            astore 4 /* dae */
        start local 4 // org.springframework.dao.DataAccessException dae
        12: .line 494
      StackMap locals: org.springframework.dao.DataAccessException
      StackMap stack:
            aload 4 /* dae */
            ifnull 13
            aload 4 /* dae */
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3 /* ex */
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        14: athrow
        end local 4 // org.springframework.dao.DataAccessException dae
        end local 3 // java.lang.RuntimeException ex
        15: .line 496
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.persistence.EntityManager em
        end local 1 // org.springframework.orm.jpa.EntityManagerHolder resourceHolder
        end local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lorg/springframework/orm/jpa/EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization;
            0   16     1  resourceHolder  Lorg/springframework/orm/jpa/EntityManagerHolder;
            1   16     2              em  Ljavax/persistence/EntityManager;
            3    5     3          target  Ljavax/persistence/EntityManager;
            8   15     3              ex  Ljava/lang/RuntimeException;
           10   11     4             dae  Lorg/springframework/dao/DataAccessException;
           12   15     4             dae  Lorg/springframework/dao/DataAccessException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.RuntimeException
    MethodParameters:
                Name  Flags
      resourceHolder  

  protected boolean shouldUnbindAtCompletion();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
         0: .line 500
            aload 0 /* this */
            getfield org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.newEntityManager:Z
            ireturn
        end local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization;

  protected void releaseResource(org.springframework.orm.jpa.EntityManagerHolder, javax.persistence.EntityManagerFactory);
    descriptor: (Lorg/springframework/orm/jpa/EntityManagerHolder;Ljavax/persistence/EntityManagerFactory;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
        start local 1 // org.springframework.orm.jpa.EntityManagerHolder resourceHolder
        start local 2 // javax.persistence.EntityManagerFactory resourceKey
         0: .line 505
            aload 1 /* resourceHolder */
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
            invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
         1: .line 506
            return
        end local 2 // javax.persistence.EntityManagerFactory resourceKey
        end local 1 // org.springframework.orm.jpa.EntityManagerHolder resourceHolder
        end local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/springframework/orm/jpa/EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization;
            0    2     1  resourceHolder  Lorg/springframework/orm/jpa/EntityManagerHolder;
            0    2     2     resourceKey  Ljavax/persistence/EntityManagerFactory;
    MethodParameters:
                Name  Flags
      resourceHolder  
      resourceKey     

  protected void cleanupResource(org.springframework.orm.jpa.EntityManagerHolder, javax.persistence.EntityManagerFactory, boolean);
    descriptor: (Lorg/springframework/orm/jpa/EntityManagerHolder;Ljavax/persistence/EntityManagerFactory;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
        start local 1 // org.springframework.orm.jpa.EntityManagerHolder resourceHolder
        start local 2 // javax.persistence.EntityManagerFactory resourceKey
        start local 3 // boolean committed
         0: .line 512
            iload 3 /* committed */
            ifne 2
         1: .line 515
            aload 1 /* resourceHolder */
            invokevirtual org.springframework.orm.jpa.EntityManagerHolder.getEntityManager:()Ljavax/persistence/EntityManager;
            invokeinterface javax.persistence.EntityManager.clear:()V
         2: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.transactionData:Ljava/lang/Object;
            aload 2 /* resourceKey */
            invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.cleanupTransaction:(Ljava/lang/Object;Ljavax/persistence/EntityManagerFactory;)V
         3: .line 518
            return
        end local 3 // boolean committed
        end local 2 // javax.persistence.EntityManagerFactory resourceKey
        end local 1 // org.springframework.orm.jpa.EntityManagerHolder resourceHolder
        end local 0 // org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/orm/jpa/EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization;
            0    4     1  resourceHolder  Lorg/springframework/orm/jpa/EntityManagerHolder;
            0    4     2     resourceKey  Ljavax/persistence/EntityManagerFactory;
            0    4     3       committed  Z
    MethodParameters:
                Name  Flags
      resourceHolder  
      resourceKey     
      committed       

  protected void cleanupResource(org.springframework.transaction.support.ResourceHolder, java.lang.Object, boolean);
    descriptor: (Lorg/springframework/transaction/support/ResourceHolder;Ljava/lang/Object;Z)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            checkcast org.springframework.orm.jpa.EntityManagerHolder
            aload 2
            checkcast javax.persistence.EntityManagerFactory
            iload 3
            invokevirtual org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.cleanupResource:(Lorg/springframework/orm/jpa/EntityManagerHolder;Ljavax/persistence/EntityManagerFactory;Z)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void flushResource(org.springframework.transaction.support.ResourceHolder);
    descriptor: (Lorg/springframework/transaction/support/ResourceHolder;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.springframework.orm.jpa.EntityManagerHolder
            invokevirtual org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.flushResource:(Lorg/springframework/orm/jpa/EntityManagerHolder;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void releaseResource(org.springframework.transaction.support.ResourceHolder, java.lang.Object);
    descriptor: (Lorg/springframework/transaction/support/ResourceHolder;Ljava/lang/Object;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast org.springframework.orm.jpa.EntityManagerHolder
            aload 2
            checkcast javax.persistence.EntityManagerFactory
            invokevirtual org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization.releaseResource:(Lorg/springframework/orm/jpa/EntityManagerHolder;Ljavax/persistence/EntityManagerFactory;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/springframework/transaction/support/ResourceHolderSynchronization<Lorg/springframework/orm/jpa/EntityManagerHolder;Ljavax/persistence/EntityManagerFactory;>;Lorg/springframework/core/Ordered;
SourceFile: "EntityManagerFactoryUtils.java"
NestHost: org.springframework.orm.jpa.EntityManagerFactoryUtils
InnerClasses:
  private TransactionalEntityManagerSynchronization = org.springframework.orm.jpa.EntityManagerFactoryUtils$TransactionalEntityManagerSynchronization of org.springframework.orm.jpa.EntityManagerFactoryUtils