class org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler implements java.lang.reflect.InvocationHandler, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler
  super_class: java.lang.Object
{
  private final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.persistence.EntityManagerFactory targetFactory;
    descriptor: Ljavax/persistence/EntityManagerFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<?, ?> properties;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<**>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  private volatile transient java.lang.ClassLoader proxyClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>(javax.persistence.EntityManagerFactory, java.util.Map<?, ?>, );
    descriptor: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler this
        start local 1 // javax.persistence.EntityManagerFactory target
        start local 2 // java.util.Map properties
        start local 3 // boolean synchronizedWithTransaction
         0: .line 194
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 182
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.logger:Lorg/apache/commons/logging/Log;
         2: .line 197
            aload 0 /* this */
            aload 1 /* target */
            putfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
         3: .line 198
            aload 0 /* this */
            aload 2 /* properties */
            putfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.properties:Ljava/util/Map;
         4: .line 199
            aload 0 /* this */
            iload 3 /* synchronizedWithTransaction */
            putfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.synchronizedWithTransaction:Z
         5: .line 200
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.initProxyClassLoader:()V
         6: .line 201
            return
        end local 3 // boolean synchronizedWithTransaction
        end local 2 // java.util.Map properties
        end local 1 // javax.persistence.EntityManagerFactory target
        end local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    7     0                         this  Lorg/springframework/orm/jpa/SharedEntityManagerCreator$SharedEntityManagerInvocationHandler;
            0    7     1                       target  Ljavax/persistence/EntityManagerFactory;
            0    7     2                   properties  Ljava/util/Map<**>;
            0    7     3  synchronizedWithTransaction  Z
    Signature: (Ljavax/persistence/EntityManagerFactory;Ljava/util/Map<**>;Z)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
                             Name  Flags
      target                       
      properties                   
      synchronizedWithTransaction  

  private void initProxyClassLoader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler this
         0: .line 204
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            instanceof org.springframework.orm.jpa.EntityManagerFactoryInfo
            ifeq 3
         1: .line 205
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            checkcast org.springframework.orm.jpa.EntityManagerFactoryInfo
            invokeinterface org.springframework.orm.jpa.EntityManagerFactoryInfo.getBeanClassLoader:()Ljava/lang/ClassLoader;
            putfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.proxyClassLoader:Ljava/lang/ClassLoader;
         2: .line 206
            goto 4
         3: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            putfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.proxyClassLoader:Ljava/lang/ClassLoader;
         4: .line 210
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/orm/jpa/SharedEntityManagerCreator$SharedEntityManagerInvocationHandler;

  public java.lang.Object invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler this
        start local 1 // java.lang.Object proxy
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.Object[] args
         0: .line 217
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "equals"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 219
            aload 1 /* proxy */
            aload 3 /* args */
            iconst_0
            aaload
            if_acmpne 2
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         3: .line 221
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "hashCode"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 223
            aload 0 /* this */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         5: .line 225
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "toString"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 227
            new java.lang.StringBuilder
            dup
            ldc "Shared EntityManager proxy for target factory ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 229
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "getEntityManagerFactory"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 231
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            areturn
         9: .line 233
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "getCriteriaBuilder"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "getMetamodel"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        10: .line 236
      StackMap locals:
      StackMap stack:
            ldc Ljavax/persistence/EntityManagerFactory;
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
        11: areturn
        12: .line 238
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 4 /* ex */
        start local 4 // java.lang.reflect.InvocationTargetException ex
        13: .line 239
            aload 4 /* ex */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            athrow
        end local 4 // java.lang.reflect.InvocationTargetException ex
        14: .line 242
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "unwrap"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        15: .line 244
            aload 3 /* args */
            iconst_0
            aaload
            checkcast java.lang.Class
            astore 4 /* targetClass */
        start local 4 // java.lang.Class targetClass
        16: .line 245
            aload 4 /* targetClass */
            ifnull 26
            aload 4 /* targetClass */
            aload 1 /* proxy */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 26
        17: .line 246
            aload 1 /* proxy */
            areturn
        end local 4 // java.lang.Class targetClass
        18: .line 249
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "isOpen"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 251
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        20: .line 253
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "close"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 255
            aconst_null
            areturn
        22: .line 257
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "getTransaction"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        23: .line 258
            new java.lang.IllegalStateException
            dup
        24: .line 259
            ldc "Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB CMT instead"
        25: .line 258
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.properties:Ljava/util/Map;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.synchronizedWithTransaction:Z
        27: .line 265
            invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.doGetTransactionalEntityManager:(Ljavax/persistence/EntityManagerFactory;Ljava/util/Map;Z)Ljavax/persistence/EntityManager;
            astore 4 /* target */
        start local 4 // javax.persistence.EntityManager target
        28: .line 268
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "getTargetEntityManager"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        29: .line 270
            aload 4 /* target */
            ifnonnull 31
        30: .line 271
            new java.lang.IllegalStateException
            dup
            ldc "No transactional EntityManager available"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 273
      StackMap locals: javax.persistence.EntityManager
      StackMap stack:
            aload 4 /* target */
            areturn
        32: .line 275
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "unwrap"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        33: .line 276
            aload 3 /* args */
            iconst_0
            aaload
            checkcast java.lang.Class
            astore 5 /* targetClass */
        start local 5 // java.lang.Class targetClass
        34: .line 277
            aload 5 /* targetClass */
            ifnonnull 38
        35: .line 278
            aload 4 /* target */
            ifnull 36
            aload 4 /* target */
            goto 37
      StackMap locals: java.lang.Class
      StackMap stack:
        36: aload 1 /* proxy */
      StackMap locals:
      StackMap stack: java.lang.Object
        37: areturn
        38: .line 281
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            ifnonnull 46
        39: .line 282
            new java.lang.IllegalStateException
            dup
            ldc "No transactional EntityManager available"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Class targetClass
        40: .line 286
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.transactionRequiringMethods:Ljava/util/Set;
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 46
        41: .line 289
            aload 4 /* target */
            ifnull 43
            invokestatic org.springframework.transaction.support.TransactionSynchronizationManager.isActualTransactionActive:()Z
            ifne 46
        42: .line 290
            aload 4 /* target */
            invokeinterface javax.persistence.EntityManager.getTransaction:()Ljavax/persistence/EntityTransaction;
            invokeinterface javax.persistence.EntityTransaction.isActive:()Z
            ifne 46
        43: .line 291
      StackMap locals:
      StackMap stack:
            new javax.persistence.TransactionRequiredException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No EntityManager with actual transaction available for current thread - cannot reliably process '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        44: .line 292
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' call"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 291
            invokespecial javax.persistence.TransactionRequiredException.<init>:(Ljava/lang/String;)V
            athrow
        46: .line 297
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* isNewEm */
        start local 5 // boolean isNewEm
        47: .line 298
            aload 4 /* target */
            ifnonnull 54
        48: .line 299
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.logger:Lorg/apache/commons/logging/Log;
            ldc "Creating new EntityManager for shared EntityManager invocation"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        49: .line 300
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.properties:Ljava/util/Map;
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Map;)Z
            ifne 51
        50: .line 301
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.properties:Ljava/util/Map;
            invokeinterface javax.persistence.EntityManagerFactory.createEntityManager:(Ljava/util/Map;)Ljavax/persistence/EntityManager;
            goto 52
        51: .line 302
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            invokeinterface javax.persistence.EntityManagerFactory.createEntityManager:()Ljavax/persistence/EntityManager;
        52: .line 300
      StackMap locals:
      StackMap stack: javax.persistence.EntityManager
            astore 4 /* target */
        53: .line 303
            iconst_1
            istore 5 /* isNewEm */
        54: .line 308
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            aload 4 /* target */
            aload 3 /* args */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* result */
        start local 6 // java.lang.Object result
        55: .line 309
            aload 6 /* result */
            instanceof javax.persistence.Query
            ifeq 65
        56: .line 310
            aload 6 /* result */
            checkcast javax.persistence.Query
            astore 7 /* query */
        start local 7 // javax.persistence.Query query
        57: .line 311
            iload 5 /* isNewEm */
            ifeq 64
        58: .line 312
            aload 7 /* query */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.proxyClassLoader:Ljava/lang/ClassLoader;
            invokestatic org.springframework.util.ClassUtils.getAllInterfacesForClass:(Ljava/lang/Class;Ljava/lang/ClassLoader;)[Ljava/lang/Class;
            astore 8 /* ifcs */
        start local 8 // java.lang.Class[] ifcs
        59: .line 313
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.proxyClassLoader:Ljava/lang/ClassLoader;
            aload 8 /* ifcs */
        60: .line 314
            new org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler
            dup
            aload 7 /* query */
            aload 4 /* target */
            invokespecial org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.<init>:(Ljavax/persistence/Query;Ljavax/persistence/EntityManager;)V
        61: .line 313
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
            astore 6 /* result */
        62: .line 315
            iconst_0
            istore 5 /* isNewEm */
        end local 8 // java.lang.Class[] ifcs
        63: .line 316
            goto 65
        64: .line 318
      StackMap locals: java.lang.Object javax.persistence.Query
      StackMap stack:
            aload 7 /* query */
            aload 0 /* this */
            getfield org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.targetFactory:Ljavax/persistence/EntityManagerFactory;
            invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.applyTransactionTimeout:(Ljavax/persistence/Query;Ljavax/persistence/EntityManagerFactory;)V
        end local 7 // javax.persistence.Query query
        65: .line 321
      StackMap locals:
      StackMap stack:
            aload 6 /* result */
            astore 10
        66: .line 327
            iload 5 /* isNewEm */
            ifeq 68
        67: .line 328
            aload 4 /* target */
            invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
        68: .line 321
      StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] javax.persistence.EntityManager int java.lang.Object top top top java.lang.Object
      StackMap stack:
            aload 10
            areturn
        end local 6 // java.lang.Object result
        69: .line 323
      StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] javax.persistence.EntityManager int
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 6 /* ex */
        start local 6 // java.lang.reflect.InvocationTargetException ex
        70: .line 324
            aload 6 /* ex */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            athrow
        end local 6 // java.lang.reflect.InvocationTargetException ex
        71: .line 326
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        72: .line 327
            iload 5 /* isNewEm */
            ifeq 74
        73: .line 328
            aload 4 /* target */
            invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
        74: .line 330
      StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] javax.persistence.EntityManager int top top top java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        end local 5 // boolean isNewEm
        end local 4 // javax.persistence.EntityManager target
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Object proxy
        end local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   75     0         this  Lorg/springframework/orm/jpa/SharedEntityManagerCreator$SharedEntityManagerInvocationHandler;
            0   75     1        proxy  Ljava/lang/Object;
            0   75     2       method  Ljava/lang/reflect/Method;
            0   75     3         args  [Ljava/lang/Object;
           13   14     4           ex  Ljava/lang/reflect/InvocationTargetException;
           16   18     4  targetClass  Ljava/lang/Class<*>;
           28   75     4       target  Ljavax/persistence/EntityManager;
           34   40     5  targetClass  Ljava/lang/Class<*>;
           47   75     5      isNewEm  Z
           55   69     6       result  Ljava/lang/Object;
           57   65     7        query  Ljavax/persistence/Query;
           59   63     8         ifcs  [Ljava/lang/Class;
           70   71     6           ex  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.reflect.InvocationTargetException
          54    66      69  Class java.lang.reflect.InvocationTargetException
          54    66      71  any
          69    71      71  any
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      proxy   
      method  
      args    

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler this
        start local 1 // java.io.ObjectInputStream ois
         0: .line 335
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 337
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.initProxyClassLoader:()V
         2: .line 338
            return
        end local 1 // java.io.ObjectInputStream ois
        end local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/orm/jpa/SharedEntityManagerCreator$SharedEntityManagerInvocationHandler;
            0    3     1   ois  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      ois   
}
SourceFile: "SharedEntityManagerCreator.java"
NestHost: org.springframework.orm.jpa.SharedEntityManagerCreator
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