public abstract class org.springframework.orm.jpa.AbstractEntityManagerFactoryBean implements org.springframework.beans.factory.FactoryBean<javax.persistence.EntityManagerFactory>, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean, org.springframework.orm.jpa.EntityManagerFactoryInfo, org.springframework.dao.support.PersistenceExceptionTranslator, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.orm.jpa.AbstractEntityManagerFactoryBean
  super_class: java.lang.Object
{
  protected final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private javax.persistence.spi.PersistenceProvider persistenceProvider;
    descriptor: Ljavax/persistence/spi/PersistenceProvider;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  private final java.util.Map<java.lang.String, java.lang.Object> jpaPropertyMap;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private java.lang.Class<? extends javax.persistence.EntityManagerFactory> entityManagerFactoryInterface;
    descriptor: Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/Class<+Ljavax/persistence/EntityManagerFactory;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.lang.Class<? extends javax.persistence.EntityManager> entityManagerInterface;
    descriptor: Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/Class<+Ljavax/persistence/EntityManager;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  private org.springframework.orm.jpa.JpaVendorAdapter jpaVendorAdapter;
    descriptor: Lorg/springframework/orm/jpa/JpaVendorAdapter;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.core.task.AsyncTaskExecutor bootstrapExecutor;
    descriptor: Lorg/springframework/core/task/AsyncTaskExecutor;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.lang.ClassLoader beanClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.beans.factory.BeanFactory beanFactory;
    descriptor: Lorg/springframework/beans/factory/BeanFactory;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  private javax.persistence.EntityManagerFactory nativeEntityManagerFactory;
    descriptor: Ljavax/persistence/EntityManagerFactory;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.util.concurrent.Future<javax.persistence.EntityManagerFactory> nativeEntityManagerFactoryFuture;
    descriptor: Ljava/util/concurrent/Future;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/Future<Ljavax/persistence/EntityManagerFactory;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private javax.persistence.EntityManagerFactory entityManagerFactory;
    descriptor: Ljavax/persistence/EntityManagerFactory;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 95
            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.AbstractEntityManagerFactoryBean.logger:Lorg/apache/commons/logging/Log;
         2: .line 103
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaPropertyMap:Ljava/util/Map;
         3: .line 120
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanClassLoader:Ljava/lang/ClassLoader;
         4: .line 90
            return
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;

  public void setPersistenceProviderClass(java.lang.Class<? extends javax.persistence.spi.PersistenceProvider>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.Class persistenceProviderClass
         0: .line 151
            aload 0 /* this */
            aload 1 /* persistenceProviderClass */
            invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.persistence.spi.PersistenceProvider
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.persistenceProvider:Ljavax/persistence/spi/PersistenceProvider;
         1: .line 152
            return
        end local 1 // java.lang.Class persistenceProviderClass
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  persistenceProviderClass  Ljava/lang/Class<+Ljavax/persistence/spi/PersistenceProvider;>;
    Signature: (Ljava/lang/Class<+Ljavax/persistence/spi/PersistenceProvider;>;)V
    MethodParameters:
                          Name  Flags
      persistenceProviderClass  

  public void setPersistenceProvider(javax.persistence.spi.PersistenceProvider);
    descriptor: (Ljavax/persistence/spi/PersistenceProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // javax.persistence.spi.PersistenceProvider persistenceProvider
         0: .line 164
            aload 0 /* this */
            aload 1 /* persistenceProvider */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.persistenceProvider:Ljavax/persistence/spi/PersistenceProvider;
         1: .line 165
            return
        end local 1 // javax.persistence.spi.PersistenceProvider persistenceProvider
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  persistenceProvider  Ljavax/persistence/spi/PersistenceProvider;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                     Name  Flags
      persistenceProvider  

  public javax.persistence.spi.PersistenceProvider getPersistenceProvider();
    descriptor: ()Ljavax/persistence/spi/PersistenceProvider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 170
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.persistenceProvider:Ljavax/persistence/spi/PersistenceProvider;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setPersistenceUnitName(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.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.String persistenceUnitName
         0: .line 181
            aload 0 /* this */
            aload 1 /* persistenceUnitName */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.persistenceUnitName:Ljava/lang/String;
         1: .line 182
            return
        end local 1 // java.lang.String persistenceUnitName
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  persistenceUnitName  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                     Name  Flags
      persistenceUnitName  

  public java.lang.String getPersistenceUnitName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 187
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.persistenceUnitName:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setJpaProperties(java.util.Properties);
    descriptor: (Ljava/util/Properties;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.util.Properties jpaProperties
         0: .line 199
            aload 1 /* jpaProperties */
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaPropertyMap:Ljava/util/Map;
            invokestatic org.springframework.util.CollectionUtils.mergePropertiesIntoMap:(Ljava/util/Properties;Ljava/util/Map;)V
         1: .line 200
            return
        end local 1 // java.util.Properties jpaProperties
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  jpaProperties  Ljava/util/Properties;
    MethodParameters:
               Name  Flags
      jpaProperties  

  public void setJpaPropertyMap(java.util.Map<java.lang.String, ?>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.util.Map jpaProperties
         0: .line 210
            aload 1 /* jpaProperties */
            ifnull 2
         1: .line 211
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaPropertyMap:Ljava/util/Map;
            aload 1 /* jpaProperties */
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         2: .line 213
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map jpaProperties
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    3     1  jpaProperties  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: (Ljava/util/Map<Ljava/lang/String;*>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      jpaProperties  

  public java.util.Map<java.lang.String, java.lang.Object> getJpaPropertyMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 222
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaPropertyMap:Ljava/util/Map;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  public void setEntityManagerFactoryInterface(java.lang.Class<? extends javax.persistence.EntityManagerFactory>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.Class emfInterface
         0: .line 234
            aload 0 /* this */
            aload 1 /* emfInterface */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactoryInterface:Ljava/lang/Class;
         1: .line 235
            return
        end local 1 // java.lang.Class emfInterface
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  emfInterface  Ljava/lang/Class<+Ljavax/persistence/EntityManagerFactory;>;
    Signature: (Ljava/lang/Class<+Ljavax/persistence/EntityManagerFactory;>;)V
    MethodParameters:
              Name  Flags
      emfInterface  

  public void setEntityManagerInterface(java.lang.Class<? extends javax.persistence.EntityManager>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.Class emInterface
         0: .line 247
            aload 0 /* this */
            aload 1 /* emInterface */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerInterface:Ljava/lang/Class;
         1: .line 248
            return
        end local 1 // java.lang.Class emInterface
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  emInterface  Ljava/lang/Class<+Ljavax/persistence/EntityManager;>;
    Signature: (Ljava/lang/Class<+Ljavax/persistence/EntityManager;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      emInterface  

  public java.lang.Class<? extends javax.persistence.EntityManager> getEntityManagerInterface();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 253
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerInterface:Ljava/lang/Class;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    Signature: ()Ljava/lang/Class<+Ljavax/persistence/EntityManager;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setJpaDialect(org.springframework.orm.jpa.JpaDialect);
    descriptor: (Lorg/springframework/orm/jpa/JpaDialect;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // org.springframework.orm.jpa.JpaDialect jpaDialect
         0: .line 264
            aload 0 /* this */
            aload 1 /* jpaDialect */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
         1: .line 265
            return
        end local 1 // org.springframework.orm.jpa.JpaDialect jpaDialect
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  jpaDialect  Lorg/springframework/orm/jpa/JpaDialect;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      jpaDialect  

  public org.springframework.orm.jpa.JpaDialect getJpaDialect();
    descriptor: ()Lorg/springframework/orm/jpa/JpaDialect;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 270
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setJpaVendorAdapter(org.springframework.orm.jpa.JpaVendorAdapter);
    descriptor: (Lorg/springframework/orm/jpa/JpaVendorAdapter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // org.springframework.orm.jpa.JpaVendorAdapter jpaVendorAdapter
         0: .line 280
            aload 0 /* this */
            aload 1 /* jpaVendorAdapter */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaVendorAdapter:Lorg/springframework/orm/jpa/JpaVendorAdapter;
         1: .line 281
            return
        end local 1 // org.springframework.orm.jpa.JpaVendorAdapter jpaVendorAdapter
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  jpaVendorAdapter  Lorg/springframework/orm/jpa/JpaVendorAdapter;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      jpaVendorAdapter  

  public org.springframework.orm.jpa.JpaVendorAdapter getJpaVendorAdapter();
    descriptor: ()Lorg/springframework/orm/jpa/JpaVendorAdapter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 289
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaVendorAdapter:Lorg/springframework/orm/jpa/JpaVendorAdapter;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setBootstrapExecutor(org.springframework.core.task.AsyncTaskExecutor);
    descriptor: (Lorg/springframework/core/task/AsyncTaskExecutor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // org.springframework.core.task.AsyncTaskExecutor bootstrapExecutor
         0: .line 305
            aload 0 /* this */
            aload 1 /* bootstrapExecutor */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.bootstrapExecutor:Lorg/springframework/core/task/AsyncTaskExecutor;
         1: .line 306
            return
        end local 1 // org.springframework.core.task.AsyncTaskExecutor bootstrapExecutor
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  bootstrapExecutor  Lorg/springframework/core/task/AsyncTaskExecutor;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                   Name  Flags
      bootstrapExecutor  

  public org.springframework.core.task.AsyncTaskExecutor getBootstrapExecutor();
    descriptor: ()Lorg/springframework/core/task/AsyncTaskExecutor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 314
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.bootstrapExecutor:Lorg/springframework/core/task/AsyncTaskExecutor;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setBeanClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 319
            aload 0 /* this */
            aload 1 /* classLoader */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanClassLoader:Ljava/lang/ClassLoader;
         1: .line 320
            return
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  classLoader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      classLoader  

  public java.lang.ClassLoader getBeanClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 324
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanClassLoader:Ljava/lang/ClassLoader;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;

  public void setBeanFactory(org.springframework.beans.factory.BeanFactory);
    descriptor: (Lorg/springframework/beans/factory/BeanFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // org.springframework.beans.factory.BeanFactory beanFactory
         0: .line 329
            aload 0 /* this */
            aload 1 /* beanFactory */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
         1: .line 330
            return
        end local 1 // org.springframework.beans.factory.BeanFactory beanFactory
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  beanFactory  Lorg/springframework/beans/factory/BeanFactory;
    MethodParameters:
             Name  Flags
      beanFactory  

  public void setBeanName(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.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.String name
         0: .line 334
            aload 0 /* this */
            aload 1 /* name */
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanName:Ljava/lang/String;
         1: .line 335
            return
        end local 1 // java.lang.String name
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void afterPropertiesSet();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 340
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getJpaVendorAdapter:()Lorg/springframework/orm/jpa/JpaVendorAdapter;
            astore 1 /* jpaVendorAdapter */
        start local 1 // org.springframework.orm.jpa.JpaVendorAdapter jpaVendorAdapter
         1: .line 341
            aload 1 /* jpaVendorAdapter */
            ifnull 20
         2: .line 342
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.persistenceProvider:Ljavax/persistence/spi/PersistenceProvider;
            ifnonnull 4
         3: .line 343
            aload 0 /* this */
            aload 1 /* jpaVendorAdapter */
            invokeinterface org.springframework.orm.jpa.JpaVendorAdapter.getPersistenceProvider:()Ljavax/persistence/spi/PersistenceProvider;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.persistenceProvider:Ljavax/persistence/spi/PersistenceProvider;
         4: .line 345
      StackMap locals: org.springframework.orm.jpa.JpaVendorAdapter
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getPersistenceUnitInfo:()Ljavax/persistence/spi/PersistenceUnitInfo;
            astore 2 /* pui */
        start local 2 // javax.persistence.spi.PersistenceUnitInfo pui
         5: .line 346
            aload 2 /* pui */
            ifnull 6
            aload 1 /* jpaVendorAdapter */
            aload 2 /* pui */
            invokeinterface org.springframework.orm.jpa.JpaVendorAdapter.getJpaPropertyMap:(Ljavax/persistence/spi/PersistenceUnitInfo;)Ljava/util/Map;
            goto 7
         6: .line 347
      StackMap locals: javax.persistence.spi.PersistenceUnitInfo
      StackMap stack:
            aload 1 /* jpaVendorAdapter */
            invokeinterface org.springframework.orm.jpa.JpaVendorAdapter.getJpaPropertyMap:()Ljava/util/Map;
         7: .line 346
      StackMap locals:
      StackMap stack: java.util.Map
            astore 3 /* vendorPropertyMap */
        start local 3 // java.util.Map vendorPropertyMap
         8: .line 348
            aload 3 /* vendorPropertyMap */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Map;)Z
            ifne 10
         9: .line 349
            aload 3 /* vendorPropertyMap */
            aload 0 /* this */
            invokedynamic accept(Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.lambda$0(Ljava/lang/String;Ljava/lang/Object;)V (7)
                  (Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
        10: .line 355
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactoryInterface:Ljava/lang/Class;
            ifnonnull 14
        11: .line 356
            aload 0 /* this */
            aload 1 /* jpaVendorAdapter */
            invokeinterface org.springframework.orm.jpa.JpaVendorAdapter.getEntityManagerFactoryInterface:()Ljava/lang/Class;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactoryInterface:Ljava/lang/Class;
        12: .line 357
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactoryInterface:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanClassLoader:Ljava/lang/ClassLoader;
            invokestatic org.springframework.util.ClassUtils.isVisible:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Z
            ifne 14
        13: .line 358
            aload 0 /* this */
            ldc Ljavax/persistence/EntityManagerFactory;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactoryInterface:Ljava/lang/Class;
        14: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerInterface:Ljava/lang/Class;
            ifnonnull 18
        15: .line 362
            aload 0 /* this */
            aload 1 /* jpaVendorAdapter */
            invokeinterface org.springframework.orm.jpa.JpaVendorAdapter.getEntityManagerInterface:()Ljava/lang/Class;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerInterface:Ljava/lang/Class;
        16: .line 363
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerInterface:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanClassLoader:Ljava/lang/ClassLoader;
            invokestatic org.springframework.util.ClassUtils.isVisible:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Z
            ifne 18
        17: .line 364
            aload 0 /* this */
            ldc Ljavax/persistence/EntityManager;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerInterface:Ljava/lang/Class;
        18: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
            ifnonnull 20
        19: .line 368
            aload 0 /* this */
            aload 1 /* jpaVendorAdapter */
            invokeinterface org.springframework.orm.jpa.JpaVendorAdapter.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaDialect:Lorg/springframework/orm/jpa/JpaDialect;
        end local 3 // java.util.Map vendorPropertyMap
        end local 2 // javax.persistence.spi.PersistenceUnitInfo pui
        20: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getBootstrapExecutor:()Lorg/springframework/core/task/AsyncTaskExecutor;
            astore 2 /* bootstrapExecutor */
        start local 2 // org.springframework.core.task.AsyncTaskExecutor bootstrapExecutor
        21: .line 373
            aload 2 /* bootstrapExecutor */
            ifnull 24
        22: .line 374
            aload 0 /* this */
            aload 2 /* bootstrapExecutor */
            aload 0 /* this */
            invokedynamic call(Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory()Ljavax/persistence/EntityManagerFactory; (7)
                  ()Ljavax/persistence/EntityManagerFactory;
            invokeinterface org.springframework.core.task.AsyncTaskExecutor.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.nativeEntityManagerFactoryFuture:Ljava/util/concurrent/Future;
        23: .line 375
            goto 25
        24: .line 377
      StackMap locals: org.springframework.core.task.AsyncTaskExecutor
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.nativeEntityManagerFactory:Ljavax/persistence/EntityManagerFactory;
        25: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.nativeEntityManagerFactory:Ljavax/persistence/EntityManagerFactory;
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.createEntityManagerFactoryProxy:(Ljavax/persistence/EntityManagerFactory;)Ljavax/persistence/EntityManagerFactory;
            putfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
        26: .line 385
            return
        end local 2 // org.springframework.core.task.AsyncTaskExecutor bootstrapExecutor
        end local 1 // org.springframework.orm.jpa.JpaVendorAdapter jpaVendorAdapter
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            1   27     1   jpaVendorAdapter  Lorg/springframework/orm/jpa/JpaVendorAdapter;
            5   20     2                pui  Ljavax/persistence/spi/PersistenceUnitInfo;
            8   20     3  vendorPropertyMap  Ljava/util/Map<Ljava/lang/String;*>;
           21   27     2  bootstrapExecutor  Lorg/springframework/core/task/AsyncTaskExecutor;
    Exceptions:
      throws javax.persistence.PersistenceException

  private javax.persistence.EntityManagerFactory buildNativeEntityManagerFactory();
    descriptor: ()Ljavax/persistence/EntityManagerFactory;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 390
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.createNativeEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
            astore 1 /* emf */
        start local 1 // javax.persistence.EntityManagerFactory emf
         1: .line 391
            goto 11
        end local 1 // javax.persistence.EntityManagerFactory emf
         2: .line 392
      StackMap locals:
      StackMap stack: javax.persistence.PersistenceException
            astore 2 /* ex */
        start local 2 // javax.persistence.PersistenceException ex
         3: .line 393
            aload 2 /* ex */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljavax/persistence/PersistenceException;
            if_acmpne 10
         4: .line 397
            aload 2 /* ex */
            invokevirtual javax.persistence.PersistenceException.getCause:()Ljava/lang/Throwable;
            astore 3 /* cause */
        start local 3 // java.lang.Throwable cause
         5: .line 398
            aload 3 /* cause */
            ifnull 10
         6: .line 399
            aload 2 /* ex */
            invokevirtual javax.persistence.PersistenceException.getMessage:()Ljava/lang/String;
            astore 4 /* message */
        start local 4 // java.lang.String message
         7: .line 400
            aload 3 /* cause */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            astore 5 /* causeString */
        start local 5 // java.lang.String causeString
         8: .line 401
            aload 4 /* message */
            aload 5 /* causeString */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 10
         9: .line 402
            new javax.persistence.PersistenceException
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "; nested exception is "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* causeString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* cause */
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.String causeString
        end local 4 // java.lang.String message
        end local 3 // java.lang.Throwable cause
        10: .line 406
      StackMap locals: org.springframework.orm.jpa.AbstractEntityManagerFactoryBean top javax.persistence.PersistenceException
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 2 // javax.persistence.PersistenceException ex
        start local 1 // javax.persistence.EntityManagerFactory emf
        11: .line 409
      StackMap locals: org.springframework.orm.jpa.AbstractEntityManagerFactoryBean javax.persistence.EntityManagerFactory
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getJpaVendorAdapter:()Lorg/springframework/orm/jpa/JpaVendorAdapter;
            astore 2 /* jpaVendorAdapter */
        start local 2 // org.springframework.orm.jpa.JpaVendorAdapter jpaVendorAdapter
        12: .line 410
            aload 2 /* jpaVendorAdapter */
            ifnull 14
        13: .line 411
            aload 2 /* jpaVendorAdapter */
            aload 1 /* emf */
            invokeinterface org.springframework.orm.jpa.JpaVendorAdapter.postProcessEntityManagerFactory:(Ljavax/persistence/EntityManagerFactory;)V
        14: .line 414
      StackMap locals: org.springframework.orm.jpa.JpaVendorAdapter
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 16
        15: .line 415
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Initialized JPA EntityManagerFactory for persistence unit '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getPersistenceUnitName:()Ljava/lang/String;
            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.info:(Ljava/lang/Object;)V
        16: .line 417
      StackMap locals:
      StackMap stack:
            aload 1 /* emf */
            areturn
        end local 2 // org.springframework.orm.jpa.JpaVendorAdapter jpaVendorAdapter
        end local 1 // javax.persistence.EntityManagerFactory emf
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            1    2     1               emf  Ljavax/persistence/EntityManagerFactory;
           11   17     1               emf  Ljavax/persistence/EntityManagerFactory;
            3   11     2                ex  Ljavax/persistence/PersistenceException;
            5   10     3             cause  Ljava/lang/Throwable;
            7   10     4           message  Ljava/lang/String;
            8   10     5       causeString  Ljava/lang/String;
           12   17     2  jpaVendorAdapter  Lorg/springframework/orm/jpa/JpaVendorAdapter;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.persistence.PersistenceException

  protected javax.persistence.EntityManagerFactory createEntityManagerFactoryProxy(javax.persistence.EntityManagerFactory);
    descriptor: (Ljavax/persistence/EntityManagerFactory;)Ljavax/persistence/EntityManagerFactory;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // javax.persistence.EntityManagerFactory emf
         0: .line 428
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 2 /* ifcs */
        start local 2 // java.util.Set ifcs
         1: .line 429
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactoryInterface:Ljava/lang/Class;
            astore 3 /* entityManagerFactoryInterface */
        start local 3 // java.lang.Class entityManagerFactoryInterface
         2: .line 430
            aload 3 /* entityManagerFactoryInterface */
            ifnull 5
         3: .line 431
            aload 2 /* ifcs */
            aload 3 /* entityManagerFactoryInterface */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 432
            goto 9
         5: .line 433
      StackMap locals: java.util.Set java.lang.Class
      StackMap stack:
            aload 1 /* emf */
            ifnull 8
         6: .line 434
            aload 2 /* ifcs */
            aload 1 /* emf */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanClassLoader:Ljava/lang/ClassLoader;
            invokestatic org.springframework.util.ClassUtils.getAllInterfacesForClassAsSet:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         7: .line 435
            goto 9
         8: .line 437
      StackMap locals:
      StackMap stack:
            aload 2 /* ifcs */
            ldc Ljavax/persistence/EntityManagerFactory;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 439
      StackMap locals:
      StackMap stack:
            aload 2 /* ifcs */
            ldc Lorg/springframework/orm/jpa/EntityManagerFactoryInfo;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 442
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanClassLoader:Ljava/lang/ClassLoader;
        11: .line 443
            aload 2 /* ifcs */
            invokestatic org.springframework.util.ClassUtils.toClassArray:(Ljava/util/Collection;)[Ljava/lang/Class;
            new org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler
            dup
            aload 0 /* this */
            invokespecial org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.<init>:(Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;)V
        12: .line 442
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
            checkcast javax.persistence.EntityManagerFactory
        13: areturn
        14: .line 445
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalArgumentException ex
        15: .line 446
            aload 3 /* entityManagerFactoryInterface */
            ifnull 20
        16: .line 447
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "EntityManagerFactory interface ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* entityManagerFactoryInterface */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        17: .line 448
            ldc "] seems to conflict with Spring's EntityManagerFactoryInfo mixin - consider resetting the "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 449
            ldc "'entityManagerFactoryInterface' property to plain [javax.persistence.EntityManagerFactory]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* ex */
        19: .line 447
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        20: .line 452
      StackMap locals: java.lang.IllegalArgumentException
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Conflicting EntityManagerFactory interfaces - consider specifying the 'jpaVendorAdapter' or 'entityManagerFactoryInterface' property to select a specific EntityManagerFactory interface to proceed with"
        21: .line 454
            aload 4 /* ex */
        22: .line 452
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalArgumentException ex
        end local 3 // java.lang.Class entityManagerFactoryInterface
        end local 2 // java.util.Set ifcs
        end local 1 // javax.persistence.EntityManagerFactory emf
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   23     0                           this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0   23     1                            emf  Ljavax/persistence/EntityManagerFactory;
            1   23     2                           ifcs  Ljava/util/Set<Ljava/lang/Class<*>;>;
            2   23     3  entityManagerFactoryInterface  Ljava/lang/Class<*>;
           15   23     4                             ex  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          10    13      14  Class java.lang.IllegalArgumentException
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      emf   

  java.lang.Object invokeProxyMethod(java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.Object[] args
         0: .line 464
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            ldc Lorg/springframework/orm/jpa/EntityManagerFactoryInfo;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 2
         1: .line 465
            aload 1 /* method */
            aload 0 /* this */
            aload 2 /* args */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         2: .line 467
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "createEntityManager"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
            aload 2 /* args */
            ifnull 9
            aload 2 /* args */
            arraylength
            ifle 9
         3: .line 468
            aload 2 /* args */
            iconst_0
            aaload
            getstatic javax.persistence.SynchronizationType.SYNCHRONIZED:Ljavax/persistence/SynchronizationType;
            if_acmpne 9
         4: .line 471
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 6
         5: .line 472
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getNativeEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
            aload 2 /* args */
            iconst_1
            aaload
            checkcast java.util.Map
            invokeinterface javax.persistence.EntityManagerFactory.createEntityManager:(Ljava/util/Map;)Ljavax/persistence/EntityManager;
            goto 7
         6: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getNativeEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
            invokeinterface javax.persistence.EntityManagerFactory.createEntityManager:()Ljavax/persistence/EntityManager;
         7: .line 471
      StackMap locals:
      StackMap stack: javax.persistence.EntityManager
            astore 3 /* rawEntityManager */
        start local 3 // javax.persistence.EntityManager rawEntityManager
         8: .line 474
            aload 3 /* rawEntityManager */
            aload 0 /* this */
            iconst_1
            invokestatic org.springframework.orm.jpa.ExtendedEntityManagerCreator.createApplicationManagedEntityManager:(Ljavax/persistence/EntityManager;Lorg/springframework/orm/jpa/EntityManagerFactoryInfo;Z)Ljavax/persistence/EntityManager;
            areturn
        end local 3 // javax.persistence.EntityManager rawEntityManager
         9: .line 478
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            ifnull 19
        10: .line 479
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        11: goto 18
        12: .line 480
      StackMap locals: int
      StackMap stack:
            aload 2 /* args */
            iload 3 /* i */
            aaload
            astore 4 /* arg */
        start local 4 // java.lang.Object arg
        13: .line 481
            aload 4 /* arg */
            instanceof javax.persistence.Query
            ifeq 17
            aload 4 /* arg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic java.lang.reflect.Proxy.isProxyClass:(Ljava/lang/Class;)Z
            ifeq 17
        14: .line 486
            aload 2 /* args */
            iload 3 /* i */
            aload 4 /* arg */
            checkcast javax.persistence.Query
            aconst_null
            invokeinterface javax.persistence.Query.unwrap:(Ljava/lang/Class;)Ljava/lang/Object;
            aastore
        15: .line 487
            goto 17
        16: .line 488
      StackMap locals: org.springframework.orm.jpa.AbstractEntityManagerFactoryBean java.lang.reflect.Method java.lang.Object[] int java.lang.Object
      StackMap stack: java.lang.RuntimeException
            pop
        end local 4 // java.lang.Object arg
        17: .line 479
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            aload 2 /* args */
            arraylength
            if_icmplt 12
        end local 3 // int i
        19: .line 496
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getNativeEntityManagerFactory:()Ljavax/persistence/EntityManagerFactory;
            aload 2 /* args */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* retVal */
        start local 3 // java.lang.Object retVal
        20: .line 497
            aload 3 /* retVal */
            instanceof javax.persistence.EntityManager
            ifeq 23
        21: .line 499
            aload 3 /* retVal */
            checkcast javax.persistence.EntityManager
            astore 4 /* rawEntityManager */
        start local 4 // javax.persistence.EntityManager rawEntityManager
        22: .line 500
            aload 4 /* rawEntityManager */
            aload 0 /* this */
            iconst_0
            invokestatic org.springframework.orm.jpa.ExtendedEntityManagerCreator.createApplicationManagedEntityManager:(Ljavax/persistence/EntityManager;Lorg/springframework/orm/jpa/EntityManagerFactoryInfo;Z)Ljavax/persistence/EntityManager;
            astore 3 /* retVal */
        end local 4 // javax.persistence.EntityManager rawEntityManager
        23: .line 502
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* retVal */
            areturn
        end local 3 // java.lang.Object retVal
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0              this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0   24     1            method  Ljava/lang/reflect/Method;
            0   24     2              args  [Ljava/lang/Object;
            8    9     3  rawEntityManager  Ljavax/persistence/EntityManager;
           11   19     3                 i  I
           13   17     4               arg  Ljava/lang/Object;
           20   24     3            retVal  Ljava/lang/Object;
           22   23     4  rawEntityManager  Ljavax/persistence/EntityManager;
      Exception table:
        from    to  target  type
          14    15      16  Class java.lang.RuntimeException
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      method  
      args    

  protected abstract javax.persistence.EntityManagerFactory createNativeEntityManagerFactory();
    descriptor: ()Ljavax/persistence/EntityManagerFactory;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws javax.persistence.PersistenceException

  public org.springframework.dao.DataAccessException translateExceptionIfPossible(java.lang.RuntimeException);
    descriptor: (Ljava/lang/RuntimeException;)Lorg/springframework/dao/DataAccessException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.RuntimeException ex
         0: .line 526
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getJpaDialect:()Lorg/springframework/orm/jpa/JpaDialect;
            astore 2 /* jpaDialect */
        start local 2 // org.springframework.orm.jpa.JpaDialect jpaDialect
         1: .line 527
            aload 2 /* jpaDialect */
            ifnull 2
            aload 2 /* jpaDialect */
            aload 1 /* ex */
            invokeinterface org.springframework.orm.jpa.JpaDialect.translateExceptionIfPossible:(Ljava/lang/RuntimeException;)Lorg/springframework/dao/DataAccessException;
            goto 3
         2: .line 528
      StackMap locals: org.springframework.orm.jpa.JpaDialect
      StackMap stack:
            aload 1 /* ex */
            invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible:(Ljava/lang/RuntimeException;)Lorg/springframework/dao/DataAccessException;
         3: .line 527
      StackMap locals:
      StackMap stack: org.springframework.dao.DataAccessException
            areturn
        end local 2 // org.springframework.orm.jpa.JpaDialect jpaDialect
        end local 1 // java.lang.RuntimeException ex
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    4     1          ex  Ljava/lang/RuntimeException;
            1    4     2  jpaDialect  Lorg/springframework/orm/jpa/JpaDialect;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      ex    

  public javax.persistence.EntityManagerFactory getNativeEntityManagerFactory();
    descriptor: ()Ljavax/persistence/EntityManagerFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 533
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.nativeEntityManagerFactory:Ljavax/persistence/EntityManagerFactory;
            ifnull 2
         1: .line 534
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.nativeEntityManagerFactory:Ljavax/persistence/EntityManagerFactory;
            areturn
         2: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.nativeEntityManagerFactoryFuture:Ljava/util/concurrent/Future;
            ifnull 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: ldc "No native EntityManagerFactory available"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         5: .line 539
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.nativeEntityManagerFactoryFuture:Ljava/util/concurrent/Future;
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            checkcast javax.persistence.EntityManagerFactory
         6: areturn
         7: .line 541
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 1 /* ex */
        start local 1 // java.lang.InterruptedException ex
         8: .line 542
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         9: .line 543
            new java.lang.IllegalStateException
            dup
            ldc "Interrupted during initialization of native EntityManagerFactory"
            aload 1 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.InterruptedException ex
        10: .line 545
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
            astore 1 /* ex */
        start local 1 // java.util.concurrent.ExecutionException ex
        11: .line 546
            aload 1 /* ex */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            astore 2 /* cause */
        start local 2 // java.lang.Throwable cause
        12: .line 547
            aload 2 /* cause */
            instanceof javax.persistence.PersistenceException
            ifeq 14
        13: .line 549
            aload 2 /* cause */
            checkcast javax.persistence.PersistenceException
            athrow
        14: .line 551
      StackMap locals: java.util.concurrent.ExecutionException java.lang.Throwable
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to asynchronously initialize native EntityManagerFactory: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 552
            aload 1 /* ex */
            invokevirtual java.util.concurrent.ExecutionException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* cause */
        16: .line 551
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Throwable cause
        end local 1 // java.util.concurrent.ExecutionException ex
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            8   10     1     ex  Ljava/lang/InterruptedException;
           11   17     1     ex  Ljava/util/concurrent/ExecutionException;
           12   17     2  cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.InterruptedException
           5     6      10  Class java.util.concurrent.ExecutionException

  public javax.persistence.spi.PersistenceUnitInfo getPersistenceUnitInfo();
    descriptor: ()Ljavax/persistence/spi/PersistenceUnitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 560
            aconst_null
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public javax.sql.DataSource getDataSource();
    descriptor: ()Ljavax/sql/DataSource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 566
            aconst_null
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public javax.persistence.EntityManagerFactory getObject();
    descriptor: ()Ljavax/persistence/EntityManagerFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 576
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
            areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.lang.Class<? extends javax.persistence.EntityManagerFactory> getObjectType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 581
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
            ifnull 1
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc Ljavax/persistence/EntityManagerFactory;
      StackMap locals:
      StackMap stack: java.lang.Class
         2: areturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    Signature: ()Ljava/lang/Class<+Ljavax/persistence/EntityManagerFactory;>;

  public boolean isSingleton();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 586
            iconst_1
            ireturn
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 595
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
            ifnull 4
         1: .line 596
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 3
         2: .line 597
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Closing JPA EntityManagerFactory for persistence unit '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getPersistenceUnitName:()Ljava/lang/String;
            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.info:(Ljava/lang/Object;)V
         3: .line 599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.entityManagerFactory:Ljavax/persistence/EntityManagerFactory;
            invokeinterface javax.persistence.EntityManagerFactory.close:()V
         4: .line 601
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;

  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.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.io.ObjectInputStream ois
         0: .line 609
            new java.io.NotSerializableException
            dup
            ldc "An EntityManagerFactoryBean itself is not deserializable - just a SerializedEntityManagerFactoryBeanReference is"
            invokespecial java.io.NotSerializableException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.ObjectInputStream ois
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    1     1   ois  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      ois   

  protected java.lang.Object writeReplace();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
         0: .line 614
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            ifnull 2
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanName:Ljava/lang/String;
            ifnull 2
         1: .line 615
            new org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$SerializedEntityManagerFactoryBeanReference
            dup
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.beanName:Ljava/lang/String;
            invokespecial org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$SerializedEntityManagerFactoryBeanReference.<init>:(Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/String;)V
            areturn
         2: .line 618
      StackMap locals:
      StackMap stack:
            new java.io.NotSerializableException
            dup
            ldc "EntityManagerFactoryBean does not run within a BeanFactory"
            invokespecial java.io.NotSerializableException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
    Exceptions:
      throws java.io.ObjectStreamException

  public java.lang.Object getObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getObject:()Ljavax/persistence/EntityManagerFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  private void lambda$0(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object value
         0: .line 350
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaPropertyMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 351
            aload 0 /* this */
            getfield org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.jpaPropertyMap:Ljava/util/Map;
            aload 1 /* key */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 353
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String key
        end local 0 // org.springframework.orm.jpa.AbstractEntityManagerFactoryBean this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/springframework/orm/jpa/AbstractEntityManagerFactoryBean;
            0    3     1    key  Ljava/lang/String;
            0    3     2  value  Ljava/lang/Object;
}
Signature: Ljava/lang/Object;Lorg/springframework/beans/factory/FactoryBean<Ljavax/persistence/EntityManagerFactory;>;Lorg/springframework/beans/factory/BeanClassLoaderAware;Lorg/springframework/beans/factory/BeanFactoryAware;Lorg/springframework/beans/factory/BeanNameAware;Lorg/springframework/beans/factory/InitializingBean;Lorg/springframework/beans/factory/DisposableBean;Lorg/springframework/orm/jpa/EntityManagerFactoryInfo;Lorg/springframework/dao/support/PersistenceExceptionTranslator;Ljava/io/Serializable;
SourceFile: "AbstractEntityManagerFactoryBean.java"
NestMembers:
  org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler  org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$SerializedEntityManagerFactoryBeanReference
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private ManagedEntityManagerFactoryInvocationHandler = org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler of org.springframework.orm.jpa.AbstractEntityManagerFactoryBean
  private SerializedEntityManagerFactoryBeanReference = org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$SerializedEntityManagerFactoryBeanReference of org.springframework.orm.jpa.AbstractEntityManagerFactoryBean