public abstract class org.springframework.orm.jpa.SharedEntityManagerCreator
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.orm.jpa.SharedEntityManagerCreator
  super_class: java.lang.Object
{
  private static final java.lang.Class<?>[] NO_ENTITY_MANAGER_INTERFACES;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static final java.util.Set<java.lang.String> transactionRequiringMethods;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> queryTerminatingMethods;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 70
            iconst_0
            anewarray java.lang.Class
            putstatic org.springframework.orm.jpa.SharedEntityManagerCreator.NO_ENTITY_MANAGER_INTERFACES:[Ljava/lang/Class;
         1: .line 72
            new java.util.HashSet
            dup
            bipush 8
            invokespecial java.util.HashSet.<init>:(I)V
            putstatic org.springframework.orm.jpa.SharedEntityManagerCreator.transactionRequiringMethods:Ljava/util/Set;
         2: .line 74
            new java.util.HashSet
            dup
            bipush 8
            invokespecial java.util.HashSet.<init>:(I)V
            putstatic org.springframework.orm.jpa.SharedEntityManagerCreator.queryTerminatingMethods:Ljava/util/Set;
         3: .line 77
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.transactionRequiringMethods:Ljava/util/Set;
            ldc "joinTransaction"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 78
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.transactionRequiringMethods:Ljava/util/Set;
            ldc "flush"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 79
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.transactionRequiringMethods:Ljava/util/Set;
            ldc "persist"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 80
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.transactionRequiringMethods:Ljava/util/Set;
            ldc "merge"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 81
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.transactionRequiringMethods:Ljava/util/Set;
            ldc "remove"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 82
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.transactionRequiringMethods:Ljava/util/Set;
            ldc "refresh"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 84
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.queryTerminatingMethods:Ljava/util/Set;
            ldc "execute"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 85
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.queryTerminatingMethods:Ljava/util/Set;
            ldc "executeUpdate"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 86
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.queryTerminatingMethods:Ljava/util/Set;
            ldc "getSingleResult"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 87
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.queryTerminatingMethods:Ljava/util/Set;
            ldc "getResultList"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 88
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.queryTerminatingMethods:Ljava/util/Set;
            ldc "getResultStream"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 89
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator this
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/SharedEntityManagerCreator;

  public static javax.persistence.EntityManager createSharedEntityManager(javax.persistence.EntityManagerFactory);
    descriptor: (Ljavax/persistence/EntityManagerFactory;)Ljavax/persistence/EntityManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.persistence.EntityManagerFactory emf
         0: .line 98
            aload 0 /* emf */
            aconst_null
            iconst_1
            invokestatic org.springframework.orm.jpa.SharedEntityManagerCreator.createSharedEntityManager:(Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z)Ljavax/persistence/EntityManager;
            areturn
        end local 0 // javax.persistence.EntityManagerFactory emf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   emf  Ljavax/persistence/EntityManagerFactory;
    MethodParameters:
      Name  Flags
      emf   

  public static javax.persistence.EntityManager createSharedEntityManager(javax.persistence.EntityManagerFactory, java.util.Map<?, ?>);
    descriptor: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;)Ljavax/persistence/EntityManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.persistence.EntityManagerFactory emf
        start local 1 // java.util.Map properties
         0: .line 109
            aload 0 /* emf */
            aload 1 /* properties */
            iconst_1
            invokestatic org.springframework.orm.jpa.SharedEntityManagerCreator.createSharedEntityManager:(Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z)Ljavax/persistence/EntityManager;
            areturn
        end local 1 // java.util.Map properties
        end local 0 // javax.persistence.EntityManagerFactory emf
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0         emf  Ljavax/persistence/EntityManagerFactory;
            0    1     1  properties  Ljava/util/Map<**>;
    Signature: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map<**>;)Ljavax/persistence/EntityManager;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      emf         
      properties  

  public static javax.persistence.EntityManager createSharedEntityManager(javax.persistence.EntityManagerFactory, java.util.Map<?, ?>, boolean);
    descriptor: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z)Ljavax/persistence/EntityManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // javax.persistence.EntityManagerFactory emf
        start local 1 // java.util.Map properties
        start local 2 // boolean synchronizedWithTransaction
         0: .line 125
            aload 0 /* emf */
            instanceof org.springframework.orm.jpa.EntityManagerFactoryInfo
            ifeq 2
         1: .line 126
            aload 0 /* emf */
            checkcast org.springframework.orm.jpa.EntityManagerFactoryInfo
            invokeinterface org.springframework.orm.jpa.EntityManagerFactoryInfo.getEntityManagerInterface:()Ljava/lang/Class;
            goto 3
      StackMap locals:
      StackMap stack:
         2: ldc Ljavax/persistence/EntityManager;
         3: .line 125
      StackMap locals:
      StackMap stack: java.lang.Class
            astore 3 /* emIfc */
        start local 3 // java.lang.Class emIfc
         4: .line 127
            aload 0 /* emf */
            aload 1 /* properties */
            iload 2 /* synchronizedWithTransaction */
         5: .line 128
            aload 3 /* emIfc */
            ifnonnull 6
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.NO_ENTITY_MANAGER_INTERFACES:[Ljava/lang/Class;
            goto 7
      StackMap locals: javax.persistence.EntityManagerFactory java.util.Map int java.lang.Class
      StackMap stack: javax.persistence.EntityManagerFactory java.util.Map int
         6: iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 3 /* emIfc */
            aastore
         7: .line 127
      StackMap locals: javax.persistence.EntityManagerFactory java.util.Map int java.lang.Class
      StackMap stack: javax.persistence.EntityManagerFactory java.util.Map int java.lang.Class[]
            invokestatic org.springframework.orm.jpa.SharedEntityManagerCreator.createSharedEntityManager:(Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z[Ljava/lang/Class;)Ljavax/persistence/EntityManager;
            areturn
        end local 3 // java.lang.Class emIfc
        end local 2 // boolean synchronizedWithTransaction
        end local 1 // java.util.Map properties
        end local 0 // javax.persistence.EntityManagerFactory emf
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    8     0                          emf  Ljavax/persistence/EntityManagerFactory;
            0    8     1                   properties  Ljava/util/Map<**>;
            0    8     2  synchronizedWithTransaction  Z
            4    8     3                        emIfc  Ljava/lang/Class<*>;
    Signature: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map<**>;Z)Ljavax/persistence/EntityManager;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
                             Name  Flags
      emf                          
      properties                   
      synchronizedWithTransaction  

  public static javax.persistence.EntityManager createSharedEntityManager(javax.persistence.EntityManagerFactory, java.util.Map<?, ?>, java.lang.Class<?>[]);
    descriptor: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;[Ljava/lang/Class;)Ljavax/persistence/EntityManager;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // javax.persistence.EntityManagerFactory emf
        start local 1 // java.util.Map properties
        start local 2 // java.lang.Class[] entityManagerInterfaces
         0: .line 143
            aload 0 /* emf */
            aload 1 /* properties */
            iconst_1
            aload 2 /* entityManagerInterfaces */
            invokestatic org.springframework.orm.jpa.SharedEntityManagerCreator.createSharedEntityManager:(Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z[Ljava/lang/Class;)Ljavax/persistence/EntityManager;
            areturn
        end local 2 // java.lang.Class[] entityManagerInterfaces
        end local 1 // java.util.Map properties
        end local 0 // javax.persistence.EntityManagerFactory emf
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                      emf  Ljavax/persistence/EntityManagerFactory;
            0    1     1               properties  Ljava/util/Map<**>;
            0    1     2  entityManagerInterfaces  [Ljava/lang/Class;
    Signature: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map<**>;[Ljava/lang/Class<*>;)Ljavax/persistence/EntityManager;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
                         Name  Flags
      emf                      
      properties               
      entityManagerInterfaces  

  public static javax.persistence.EntityManager createSharedEntityManager(javax.persistence.EntityManagerFactory, java.util.Map<?, ?>, boolean, java.lang.Class<?>[]);
    descriptor: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z[Ljava/lang/Class;)Ljavax/persistence/EntityManager;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // javax.persistence.EntityManagerFactory emf
        start local 1 // java.util.Map properties
        start local 2 // boolean synchronizedWithTransaction
        start local 3 // java.lang.Class[] entityManagerInterfaces
         0: .line 161
            aconst_null
            astore 4 /* cl */
        start local 4 // java.lang.ClassLoader cl
         1: .line 162
            aload 0 /* emf */
            instanceof org.springframework.orm.jpa.EntityManagerFactoryInfo
            ifeq 3
         2: .line 163
            aload 0 /* emf */
            checkcast org.springframework.orm.jpa.EntityManagerFactoryInfo
            invokeinterface org.springframework.orm.jpa.EntityManagerFactoryInfo.getBeanClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* cl */
         3: .line 165
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* entityManagerInterfaces */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.Class
            astore 5 /* ifcs */
        start local 5 // java.lang.Class[] ifcs
         4: .line 166
            aload 3 /* entityManagerInterfaces */
            iconst_0
            aload 5 /* ifcs */
            iconst_0
            aload 3 /* entityManagerInterfaces */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 167
            aload 5 /* ifcs */
            aload 3 /* entityManagerInterfaces */
            arraylength
            ldc Lorg/springframework/orm/jpa/EntityManagerProxy;
            aastore
         6: .line 169
            aload 4 /* cl */
            ifnull 7
            aload 4 /* cl */
            goto 8
      StackMap locals: java.lang.Class[]
      StackMap stack:
         7: ldc Lorg/springframework/orm/jpa/SharedEntityManagerCreator;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         8: .line 170
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
            aload 5 /* ifcs */
            new org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler
            dup
            aload 0 /* emf */
            aload 1 /* properties */
            iload 2 /* synchronizedWithTransaction */
            invokespecial org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.<init>:(Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z)V
         9: .line 168
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
            checkcast javax.persistence.EntityManager
            areturn
        end local 5 // java.lang.Class[] ifcs
        end local 4 // java.lang.ClassLoader cl
        end local 3 // java.lang.Class[] entityManagerInterfaces
        end local 2 // boolean synchronizedWithTransaction
        end local 1 // java.util.Map properties
        end local 0 // javax.persistence.EntityManagerFactory emf
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   10     0                          emf  Ljavax/persistence/EntityManagerFactory;
            0   10     1                   properties  Ljava/util/Map<**>;
            0   10     2  synchronizedWithTransaction  Z
            0   10     3      entityManagerInterfaces  [Ljava/lang/Class;
            1   10     4                           cl  Ljava/lang/ClassLoader;
            4   10     5                         ifcs  [Ljava/lang/Class;
    Signature: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map<**>;Z[Ljava/lang/Class<*>;)Ljavax/persistence/EntityManager;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
    MethodParameters:
                             Name  Flags
      emf                          
      properties                   
      synchronizedWithTransaction  
      entityManagerInterfaces      
}
SourceFile: "SharedEntityManagerCreator.java"
NestMembers:
  org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler  org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler
InnerClasses:
  private DeferredQueryInvocationHandler = org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler of org.springframework.orm.jpa.SharedEntityManagerCreator
  private SharedEntityManagerInvocationHandler = org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler of org.springframework.orm.jpa.SharedEntityManagerCreator