public class org.springframework.context.annotation.ConfigurationClassPostProcessor implements org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor, org.springframework.core.PriorityOrdered, org.springframework.context.ResourceLoaderAware, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.context.EnvironmentAware
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.context.annotation.ConfigurationClassPostProcessor
  super_class: java.lang.Object
{
  private static final java.lang.String IMPORT_REGISTRY_BEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.springframework.beans.factory.parsing.SourceExtractor sourceExtractor;
    descriptor: Lorg/springframework/beans/factory/parsing/SourceExtractor;
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.beans.factory.parsing.ProblemReporter problemReporter;
    descriptor: Lorg/springframework/beans/factory/parsing/ProblemReporter;
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.core.env.Environment environment;
    descriptor: Lorg/springframework/core/env/Environment;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.core.io.ResourceLoader resourceLoader;
    descriptor: Lorg/springframework/core/io/ResourceLoader;
    flags: (0x0002) ACC_PRIVATE

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

  private org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory;
    descriptor: Lorg/springframework/core/type/classreading/MetadataReaderFactory;
    flags: (0x0002) ACC_PRIVATE

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

  private final java.util.Set<java.lang.Integer> registriesPostProcessed;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Integer;>;

  private final java.util.Set<java.lang.Integer> factoriesPostProcessed;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Integer;>;

  private org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader reader;
    descriptor: Lorg/springframework/context/annotation/ConfigurationClassBeanDefinitionReader;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  private org.springframework.beans.factory.support.BeanNameGenerator componentScanBeanNameGenerator;
    descriptor: Lorg/springframework/beans/factory/support/BeanNameGenerator;
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.beans.factory.support.BeanNameGenerator importBeanNameGenerator;
    descriptor: Lorg/springframework/beans/factory/support/BeanNameGenerator;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 90
            new java.lang.StringBuilder
            dup
            ldc Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".importRegistry"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         1: .line 89
            putstatic org.springframework.context.annotation.ConfigurationClassPostProcessor.IMPORT_REGISTRY_BEAN_NAME:Ljava/lang/String;
         2: .line 90
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
         0: .line 86
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 93
            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.context.annotation.ConfigurationClassPostProcessor.logger:Lorg/apache/commons/logging/Log;
         2: .line 95
            aload 0 /* this */
            new org.springframework.beans.factory.parsing.PassThroughSourceExtractor
            dup
            invokespecial org.springframework.beans.factory.parsing.PassThroughSourceExtractor.<init>:()V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.sourceExtractor:Lorg/springframework/beans/factory/parsing/SourceExtractor;
         3: .line 97
            aload 0 /* this */
            new org.springframework.beans.factory.parsing.FailFastProblemReporter
            dup
            invokespecial org.springframework.beans.factory.parsing.FailFastProblemReporter.<init>:()V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.problemReporter:Lorg/springframework/beans/factory/parsing/ProblemReporter;
         4: .line 102
            aload 0 /* this */
            new org.springframework.core.io.DefaultResourceLoader
            dup
            invokespecial org.springframework.core.io.DefaultResourceLoader.<init>:()V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.resourceLoader:Lorg/springframework/core/io/ResourceLoader;
         5: .line 105
            aload 0 /* this */
            invokestatic org.springframework.util.ClassUtils.getDefaultClassLoader:()Ljava/lang/ClassLoader;
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.beanClassLoader:Ljava/lang/ClassLoader;
         6: .line 107
            aload 0 /* this */
            new org.springframework.core.type.classreading.CachingMetadataReaderFactory
            dup
            invokespecial org.springframework.core.type.classreading.CachingMetadataReaderFactory.<init>:()V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
         7: .line 109
            aload 0 /* this */
            iconst_0
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.setMetadataReaderFactoryCalled:Z
         8: .line 111
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.registriesPostProcessed:Ljava/util/Set;
         9: .line 113
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.factoriesPostProcessed:Ljava/util/Set;
        10: .line 118
            aload 0 /* this */
            iconst_0
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.localBeanNameGeneratorSet:Z
        11: .line 121
            aload 0 /* this */
            new org.springframework.context.annotation.AnnotationBeanNameGenerator
            dup
            invokespecial org.springframework.context.annotation.AnnotationBeanNameGenerator.<init>:()V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.componentScanBeanNameGenerator:Lorg/springframework/beans/factory/support/BeanNameGenerator;
        12: .line 124
            aload 0 /* this */
            new org.springframework.context.annotation.ConfigurationClassPostProcessor$1
            dup
            aload 0 /* this */
            invokespecial org.springframework.context.annotation.ConfigurationClassPostProcessor$1.<init>:(Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;)V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.importBeanNameGenerator:Lorg/springframework/beans/factory/support/BeanNameGenerator;
        13: .line 86
            return
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;

  public int getOrder();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
         0: .line 136
            ldc 2147483647
            ireturn
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;

  public void setSourceExtractor(org.springframework.beans.factory.parsing.SourceExtractor);
    descriptor: (Lorg/springframework/beans/factory/parsing/SourceExtractor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.beans.factory.parsing.SourceExtractor sourceExtractor
         0: .line 144
            aload 0 /* this */
            aload 1 /* sourceExtractor */
            ifnull 1
            aload 1 /* sourceExtractor */
            goto 2
      StackMap locals:
      StackMap stack: org.springframework.context.annotation.ConfigurationClassPostProcessor
         1: new org.springframework.beans.factory.parsing.PassThroughSourceExtractor
            dup
            invokespecial org.springframework.beans.factory.parsing.PassThroughSourceExtractor.<init>:()V
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.parsing.SourceExtractor
      StackMap stack: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.parsing.SourceExtractor
         2: putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.sourceExtractor:Lorg/springframework/beans/factory/parsing/SourceExtractor;
         3: .line 145
            return
        end local 1 // org.springframework.beans.factory.parsing.SourceExtractor sourceExtractor
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0    4     1  sourceExtractor  Lorg/springframework/beans/factory/parsing/SourceExtractor;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      sourceExtractor  

  public void setProblemReporter(org.springframework.beans.factory.parsing.ProblemReporter);
    descriptor: (Lorg/springframework/beans/factory/parsing/ProblemReporter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.beans.factory.parsing.ProblemReporter problemReporter
         0: .line 154
            aload 0 /* this */
            aload 1 /* problemReporter */
            ifnull 1
            aload 1 /* problemReporter */
            goto 2
      StackMap locals:
      StackMap stack: org.springframework.context.annotation.ConfigurationClassPostProcessor
         1: new org.springframework.beans.factory.parsing.FailFastProblemReporter
            dup
            invokespecial org.springframework.beans.factory.parsing.FailFastProblemReporter.<init>:()V
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.parsing.ProblemReporter
      StackMap stack: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.parsing.ProblemReporter
         2: putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.problemReporter:Lorg/springframework/beans/factory/parsing/ProblemReporter;
         3: .line 155
            return
        end local 1 // org.springframework.beans.factory.parsing.ProblemReporter problemReporter
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0    4     1  problemReporter  Lorg/springframework/beans/factory/parsing/ProblemReporter;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      problemReporter  

  public void setMetadataReaderFactory(org.springframework.core.type.classreading.MetadataReaderFactory);
    descriptor: (Lorg/springframework/core/type/classreading/MetadataReaderFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory
         0: .line 163
            aload 1 /* metadataReaderFactory */
            ldc "MetadataReaderFactory must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 164
            aload 0 /* this */
            aload 1 /* metadataReaderFactory */
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
         2: .line 165
            aload 0 /* this */
            iconst_1
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.setMetadataReaderFactoryCalled:Z
         3: .line 166
            return
        end local 1 // org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    4     0                   this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0    4     1  metadataReaderFactory  Lorg/springframework/core/type/classreading/MetadataReaderFactory;
    MethodParameters:
                       Name  Flags
      metadataReaderFactory  

  public void setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator);
    descriptor: (Lorg/springframework/beans/factory/support/BeanNameGenerator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.beans.factory.support.BeanNameGenerator beanNameGenerator
         0: .line 186
            aload 1 /* beanNameGenerator */
            ldc "BeanNameGenerator must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 187
            aload 0 /* this */
            iconst_1
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.localBeanNameGeneratorSet:Z
         2: .line 188
            aload 0 /* this */
            aload 1 /* beanNameGenerator */
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.componentScanBeanNameGenerator:Lorg/springframework/beans/factory/support/BeanNameGenerator;
         3: .line 189
            aload 0 /* this */
            aload 1 /* beanNameGenerator */
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.importBeanNameGenerator:Lorg/springframework/beans/factory/support/BeanNameGenerator;
         4: .line 190
            return
        end local 1 // org.springframework.beans.factory.support.BeanNameGenerator beanNameGenerator
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0    5     1  beanNameGenerator  Lorg/springframework/beans/factory/support/BeanNameGenerator;
    MethodParameters:
                   Name  Flags
      beanNameGenerator  

  public void setEnvironment(org.springframework.core.env.Environment);
    descriptor: (Lorg/springframework/core/env/Environment;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.core.env.Environment environment
         0: .line 194
            aload 1 /* environment */
            ldc "Environment must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 195
            aload 0 /* this */
            aload 1 /* environment */
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.environment:Lorg/springframework/core/env/Environment;
         2: .line 196
            return
        end local 1 // org.springframework.core.env.Environment environment
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0    3     1  environment  Lorg/springframework/core/env/Environment;
    MethodParameters:
             Name  Flags
      environment  

  public void setResourceLoader(org.springframework.core.io.ResourceLoader);
    descriptor: (Lorg/springframework/core/io/ResourceLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.core.io.ResourceLoader resourceLoader
         0: .line 200
            aload 1 /* resourceLoader */
            ldc "ResourceLoader must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 201
            aload 0 /* this */
            aload 1 /* resourceLoader */
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.resourceLoader:Lorg/springframework/core/io/ResourceLoader;
         2: .line 202
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.setMetadataReaderFactoryCalled:Z
            ifne 4
         3: .line 203
            aload 0 /* this */
            new org.springframework.core.type.classreading.CachingMetadataReaderFactory
            dup
            aload 1 /* resourceLoader */
            invokespecial org.springframework.core.type.classreading.CachingMetadataReaderFactory.<init>:(Lorg/springframework/core/io/ResourceLoader;)V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
         4: .line 205
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.springframework.core.io.ResourceLoader resourceLoader
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0    5     1  resourceLoader  Lorg/springframework/core/io/ResourceLoader;
    MethodParameters:
                Name  Flags
      resourceLoader  

  public void setBeanClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // java.lang.ClassLoader beanClassLoader
         0: .line 209
            aload 0 /* this */
            aload 1 /* beanClassLoader */
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.beanClassLoader:Ljava/lang/ClassLoader;
         1: .line 210
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.setMetadataReaderFactoryCalled:Z
            ifne 3
         2: .line 211
            aload 0 /* this */
            new org.springframework.core.type.classreading.CachingMetadataReaderFactory
            dup
            aload 1 /* beanClassLoader */
            invokespecial org.springframework.core.type.classreading.CachingMetadataReaderFactory.<init>:(Ljava/lang/ClassLoader;)V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
         3: .line 213
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.ClassLoader beanClassLoader
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0    4     1  beanClassLoader  Ljava/lang/ClassLoader;
    MethodParameters:
                 Name  Flags
      beanClassLoader  

  public void postProcessBeanDefinitionRegistry(org.springframework.beans.factory.support.BeanDefinitionRegistry);
    descriptor: (Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.beans.factory.support.BeanDefinitionRegistry registry
         0: .line 221
            aload 1 /* registry */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            istore 2 /* registryId */
        start local 2 // int registryId
         1: .line 222
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.registriesPostProcessed:Ljava/util/Set;
            iload 2 /* registryId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         2: .line 223
            new java.lang.IllegalStateException
            dup
         3: .line 224
            new java.lang.StringBuilder
            dup
            ldc "postProcessBeanDefinitionRegistry already called on this post-processor against "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* registry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 223
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 226
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.factoriesPostProcessed:Ljava/util/Set;
            iload 2 /* registryId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 9
         6: .line 227
            new java.lang.IllegalStateException
            dup
         7: .line 228
            new java.lang.StringBuilder
            dup
            ldc "postProcessBeanFactory already called on this post-processor against "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* registry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 227
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.registriesPostProcessed:Ljava/util/Set;
            iload 2 /* registryId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 232
            aload 0 /* this */
            aload 1 /* registry */
            invokevirtual org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions:(Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)V
        11: .line 233
            return
        end local 2 // int registryId
        end local 1 // org.springframework.beans.factory.support.BeanDefinitionRegistry registry
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0   12     1    registry  Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;
            1   12     2  registryId  I
    MethodParameters:
          Name  Flags
      registry  

  public void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory);
    descriptor: (Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory
         0: .line 241
            aload 1 /* beanFactory */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            istore 2 /* factoryId */
        start local 2 // int factoryId
         1: .line 242
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.factoriesPostProcessed:Ljava/util/Set;
            iload 2 /* factoryId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         2: .line 243
            new java.lang.IllegalStateException
            dup
         3: .line 244
            new java.lang.StringBuilder
            dup
            ldc "postProcessBeanFactory already called on this post-processor against "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* beanFactory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 243
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 246
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.factoriesPostProcessed:Ljava/util/Set;
            iload 2 /* factoryId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 247
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.registriesPostProcessed:Ljava/util/Set;
            iload 2 /* factoryId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 250
            aload 0 /* this */
            aload 1 /* beanFactory */
            checkcast org.springframework.beans.factory.support.BeanDefinitionRegistry
            invokevirtual org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions:(Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)V
         8: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* beanFactory */
            invokevirtual org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses:(Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;)V
         9: .line 254
            aload 1 /* beanFactory */
            new org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor
            dup
            aload 1 /* beanFactory */
            invokespecial org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor.<init>:(Lorg/springframework/beans/factory/BeanFactory;)V
            invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.addBeanPostProcessor:(Lorg/springframework/beans/factory/config/BeanPostProcessor;)V
        10: .line 255
            return
        end local 2 // int factoryId
        end local 1 // org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0   11     1  beanFactory  Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
            1   11     2    factoryId  I
    MethodParameters:
             Name  Flags
      beanFactory  

  public void processConfigBeanDefinitions(org.springframework.beans.factory.support.BeanDefinitionRegistry);
    descriptor: (Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=17, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.beans.factory.support.BeanDefinitionRegistry registry
         0: .line 262
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* configCandidates */
        start local 2 // java.util.List configCandidates
         1: .line 263
            aload 1 /* registry */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.getBeanDefinitionNames:()[Ljava/lang/String;
            astore 3 /* candidateNames */
        start local 3 // java.lang.String[] candidateNames
         2: .line 265
            aload 3 /* candidateNames */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 13
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.support.BeanDefinitionRegistry java.util.List java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* beanName */
        start local 4 // java.lang.String beanName
         4: .line 266
            aload 1 /* registry */
            aload 4 /* beanName */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.getBeanDefinition:(Ljava/lang/String;)Lorg/springframework/beans/factory/config/BeanDefinition;
            astore 8 /* beanDef */
        start local 8 // org.springframework.beans.factory.config.BeanDefinition beanDef
         5: .line 267
            aload 8 /* beanDef */
            invokestatic org.springframework.context.annotation.ConfigurationClassUtils.isFullConfigurationClass:(Lorg/springframework/beans/factory/config/BeanDefinition;)Z
            ifne 7
         6: .line 268
            aload 8 /* beanDef */
            invokestatic org.springframework.context.annotation.ConfigurationClassUtils.isLiteConfigurationClass:(Lorg/springframework/beans/factory/config/BeanDefinition;)Z
            ifeq 10
         7: .line 269
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.support.BeanDefinitionRegistry java.util.List java.lang.String[] java.lang.String int int java.lang.String[] org.springframework.beans.factory.config.BeanDefinition
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 12
         8: .line 270
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Bean definition has already been processed as a configuration class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* beanDef */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         9: .line 272
            goto 12
        10: .line 273
      StackMap locals:
      StackMap stack:
            aload 8 /* beanDef */
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
            invokestatic org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate:(Lorg/springframework/beans/factory/config/BeanDefinition;Lorg/springframework/core/type/classreading/MetadataReaderFactory;)Z
            ifeq 12
        11: .line 274
            aload 2 /* configCandidates */
            new org.springframework.beans.factory.config.BeanDefinitionHolder
            dup
            aload 8 /* beanDef */
            aload 4 /* beanName */
            invokespecial org.springframework.beans.factory.config.BeanDefinitionHolder.<init>:(Lorg/springframework/beans/factory/config/BeanDefinition;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.springframework.beans.factory.config.BeanDefinition beanDef
        end local 4 // java.lang.String beanName
        12: .line 265
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.support.BeanDefinitionRegistry java.util.List java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        13: iload 5
            iload 6
            if_icmplt 3
        14: .line 279
            aload 2 /* configCandidates */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 16
        15: .line 280
            return
        16: .line 284
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.support.BeanDefinitionRegistry java.util.List java.lang.String[]
      StackMap stack:
            aload 2 /* configCandidates */
            invokedynamic compare()Ljava/util/Comparator;
              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;)I
                  org/springframework/context/annotation/ConfigurationClassPostProcessor.lambda$0(Lorg/springframework/beans/factory/config/BeanDefinitionHolder;Lorg/springframework/beans/factory/config/BeanDefinitionHolder;)I (6)
                  (Lorg/springframework/beans/factory/config/BeanDefinitionHolder;Lorg/springframework/beans/factory/config/BeanDefinitionHolder;)I
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
        17: .line 291
            aconst_null
            astore 4 /* sbr */
        start local 4 // org.springframework.beans.factory.config.SingletonBeanRegistry sbr
        18: .line 292
            aload 1 /* registry */
            instanceof org.springframework.beans.factory.config.SingletonBeanRegistry
            ifeq 25
        19: .line 293
            aload 1 /* registry */
            checkcast org.springframework.beans.factory.config.SingletonBeanRegistry
            astore 4 /* sbr */
        20: .line 294
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.localBeanNameGeneratorSet:Z
            ifne 25
        21: .line 295
            aload 4 /* sbr */
            ldc "org.springframework.context.annotation.internalConfigurationBeanNameGenerator"
            invokeinterface org.springframework.beans.factory.config.SingletonBeanRegistry.getSingleton:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.springframework.beans.factory.support.BeanNameGenerator
            astore 5 /* generator */
        start local 5 // org.springframework.beans.factory.support.BeanNameGenerator generator
        22: .line 296
            aload 5 /* generator */
            ifnull 25
        23: .line 297
            aload 0 /* this */
            aload 5 /* generator */
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.componentScanBeanNameGenerator:Lorg/springframework/beans/factory/support/BeanNameGenerator;
        24: .line 298
            aload 0 /* this */
            aload 5 /* generator */
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.importBeanNameGenerator:Lorg/springframework/beans/factory/support/BeanNameGenerator;
        end local 5 // org.springframework.beans.factory.support.BeanNameGenerator generator
        25: .line 303
      StackMap locals: org.springframework.beans.factory.config.SingletonBeanRegistry
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.environment:Lorg/springframework/core/env/Environment;
            ifnonnull 27
        26: .line 304
            aload 0 /* this */
            new org.springframework.core.env.StandardEnvironment
            dup
            invokespecial org.springframework.core.env.StandardEnvironment.<init>:()V
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.environment:Lorg/springframework/core/env/Environment;
        27: .line 308
      StackMap locals:
      StackMap stack:
            new org.springframework.context.annotation.ConfigurationClassParser
            dup
        28: .line 309
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.problemReporter:Lorg/springframework/beans/factory/parsing/ProblemReporter;
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.environment:Lorg/springframework/core/env/Environment;
        29: .line 310
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.resourceLoader:Lorg/springframework/core/io/ResourceLoader;
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.componentScanBeanNameGenerator:Lorg/springframework/beans/factory/support/BeanNameGenerator;
            aload 1 /* registry */
        30: .line 308
            invokespecial org.springframework.context.annotation.ConfigurationClassParser.<init>:(Lorg/springframework/core/type/classreading/MetadataReaderFactory;Lorg/springframework/beans/factory/parsing/ProblemReporter;Lorg/springframework/core/env/Environment;Lorg/springframework/core/io/ResourceLoader;Lorg/springframework/beans/factory/support/BeanNameGenerator;Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)V
            astore 5 /* parser */
        start local 5 // org.springframework.context.annotation.ConfigurationClassParser parser
        31: .line 312
            new java.util.LinkedHashSet
            dup
            aload 2 /* configCandidates */
            invokespecial java.util.LinkedHashSet.<init>:(Ljava/util/Collection;)V
            astore 6 /* candidates */
        start local 6 // java.util.Set candidates
        32: .line 313
            new java.util.HashSet
            dup
            aload 2 /* configCandidates */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.HashSet.<init>:(I)V
            astore 7 /* alreadyParsed */
        start local 7 // java.util.Set alreadyParsed
        33: .line 315
      StackMap locals: org.springframework.context.annotation.ConfigurationClassParser java.util.Set java.util.Set
      StackMap stack:
            aload 5 /* parser */
            aload 6 /* candidates */
            invokevirtual org.springframework.context.annotation.ConfigurationClassParser.parse:(Ljava/util/Set;)V
        34: .line 316
            aload 5 /* parser */
            invokevirtual org.springframework.context.annotation.ConfigurationClassParser.validate:()V
        35: .line 318
            new java.util.LinkedHashSet
            dup
            aload 5 /* parser */
            invokevirtual org.springframework.context.annotation.ConfigurationClassParser.getConfigurationClasses:()Ljava/util/Set;
            invokespecial java.util.LinkedHashSet.<init>:(Ljava/util/Collection;)V
            astore 8 /* configClasses */
        start local 8 // java.util.Set configClasses
        36: .line 319
            aload 8 /* configClasses */
            aload 7 /* alreadyParsed */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        37: .line 322
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.reader:Lorg/springframework/context/annotation/ConfigurationClassBeanDefinitionReader;
            ifnonnull 42
        38: .line 323
            aload 0 /* this */
            new org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader
            dup
        39: .line 324
            aload 1 /* registry */
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.sourceExtractor:Lorg/springframework/beans/factory/parsing/SourceExtractor;
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.resourceLoader:Lorg/springframework/core/io/ResourceLoader;
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.environment:Lorg/springframework/core/env/Environment;
        40: .line 325
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.importBeanNameGenerator:Lorg/springframework/beans/factory/support/BeanNameGenerator;
            aload 5 /* parser */
            invokevirtual org.springframework.context.annotation.ConfigurationClassParser.getImportRegistry:()Lorg/springframework/context/annotation/ImportRegistry;
            invokespecial org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.<init>:(Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;Lorg/springframework/beans/factory/parsing/SourceExtractor;Lorg/springframework/core/io/ResourceLoader;Lorg/springframework/core/env/Environment;Lorg/springframework/beans/factory/support/BeanNameGenerator;Lorg/springframework/context/annotation/ImportRegistry;)V
        41: .line 323
            putfield org.springframework.context.annotation.ConfigurationClassPostProcessor.reader:Lorg/springframework/context/annotation/ConfigurationClassBeanDefinitionReader;
        42: .line 327
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.reader:Lorg/springframework/context/annotation/ConfigurationClassBeanDefinitionReader;
            aload 8 /* configClasses */
            invokevirtual org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions:(Ljava/util/Set;)V
        43: .line 328
            aload 7 /* alreadyParsed */
            aload 8 /* configClasses */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        44: .line 330
            aload 6 /* candidates */
            invokeinterface java.util.Set.clear:()V
        45: .line 331
            aload 1 /* registry */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.getBeanDefinitionCount:()I
            aload 3 /* candidateNames */
            arraylength
            if_icmple 63
        46: .line 332
            aload 1 /* registry */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.getBeanDefinitionNames:()[Ljava/lang/String;
            astore 9 /* newCandidateNames */
        start local 9 // java.lang.String[] newCandidateNames
        47: .line 333
            new java.util.HashSet
            dup
            aload 3 /* candidateNames */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 10 /* oldCandidateNames */
        start local 10 // java.util.Set oldCandidateNames
        48: .line 334
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 11 /* alreadyParsedClasses */
        start local 11 // java.util.Set alreadyParsedClasses
        49: .line 335
            aload 7 /* alreadyParsed */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 13
            goto 52
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.support.BeanDefinitionRegistry java.util.List java.lang.String[] org.springframework.beans.factory.config.SingletonBeanRegistry org.springframework.context.annotation.ConfigurationClassParser java.util.Set java.util.Set java.util.Set java.lang.String[] java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        50: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.context.annotation.ConfigurationClass
            astore 12 /* configurationClass */
        start local 12 // org.springframework.context.annotation.ConfigurationClass configurationClass
        51: .line 336
            aload 11 /* alreadyParsedClasses */
            aload 12 /* configurationClass */
            invokevirtual org.springframework.context.annotation.ConfigurationClass.getMetadata:()Lorg/springframework/core/type/AnnotationMetadata;
            invokeinterface org.springframework.core.type.AnnotationMetadata.getClassName:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // org.springframework.context.annotation.ConfigurationClass configurationClass
        52: .line 335
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 50
        53: .line 338
            aload 9 /* newCandidateNames */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 61
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.support.BeanDefinitionRegistry java.util.List java.lang.String[] org.springframework.beans.factory.config.SingletonBeanRegistry org.springframework.context.annotation.ConfigurationClassParser java.util.Set java.util.Set java.util.Set java.lang.String[] java.util.Set java.util.Set top int int java.lang.String[]
      StackMap stack:
        54: aload 15
            iload 13
            aaload
            astore 12 /* candidateName */
        start local 12 // java.lang.String candidateName
        55: .line 339
            aload 10 /* oldCandidateNames */
            aload 12 /* candidateName */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 60
        56: .line 340
            aload 1 /* registry */
            aload 12 /* candidateName */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.getBeanDefinition:(Ljava/lang/String;)Lorg/springframework/beans/factory/config/BeanDefinition;
            astore 16 /* bd */
        start local 16 // org.springframework.beans.factory.config.BeanDefinition bd
        57: .line 341
            aload 16 /* bd */
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
            invokestatic org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate:(Lorg/springframework/beans/factory/config/BeanDefinition;Lorg/springframework/core/type/classreading/MetadataReaderFactory;)Z
            ifeq 60
        58: .line 342
            aload 11 /* alreadyParsedClasses */
            aload 16 /* bd */
            invokeinterface org.springframework.beans.factory.config.BeanDefinition.getBeanClassName:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 60
        59: .line 343
            aload 6 /* candidates */
            new org.springframework.beans.factory.config.BeanDefinitionHolder
            dup
            aload 16 /* bd */
            aload 12 /* candidateName */
            invokespecial org.springframework.beans.factory.config.BeanDefinitionHolder.<init>:(Lorg/springframework/beans/factory/config/BeanDefinition;Ljava/lang/String;)V
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // org.springframework.beans.factory.config.BeanDefinition bd
        end local 12 // java.lang.String candidateName
        60: .line 338
      StackMap locals:
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        61: iload 13
            iload 14
            if_icmplt 54
        62: .line 347
            aload 9 /* newCandidateNames */
            astore 3 /* candidateNames */
        end local 11 // java.util.Set alreadyParsedClasses
        end local 10 // java.util.Set oldCandidateNames
        end local 9 // java.lang.String[] newCandidateNames
        end local 8 // java.util.Set configClasses
        63: .line 350
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.support.BeanDefinitionRegistry java.util.List java.lang.String[] org.springframework.beans.factory.config.SingletonBeanRegistry org.springframework.context.annotation.ConfigurationClassParser java.util.Set java.util.Set
      StackMap stack:
            aload 6 /* candidates */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 33
        64: .line 353
            aload 4 /* sbr */
            ifnull 66
            aload 4 /* sbr */
            getstatic org.springframework.context.annotation.ConfigurationClassPostProcessor.IMPORT_REGISTRY_BEAN_NAME:Ljava/lang/String;
            invokeinterface org.springframework.beans.factory.config.SingletonBeanRegistry.containsSingleton:(Ljava/lang/String;)Z
            ifne 66
        65: .line 354
            aload 4 /* sbr */
            getstatic org.springframework.context.annotation.ConfigurationClassPostProcessor.IMPORT_REGISTRY_BEAN_NAME:Ljava/lang/String;
            aload 5 /* parser */
            invokevirtual org.springframework.context.annotation.ConfigurationClassParser.getImportRegistry:()Lorg/springframework/context/annotation/ImportRegistry;
            invokeinterface org.springframework.beans.factory.config.SingletonBeanRegistry.registerSingleton:(Ljava/lang/String;Ljava/lang/Object;)V
        66: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
            instanceof org.springframework.core.type.classreading.CachingMetadataReaderFactory
            ifeq 68
        67: .line 360
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.metadataReaderFactory:Lorg/springframework/core/type/classreading/MetadataReaderFactory;
            checkcast org.springframework.core.type.classreading.CachingMetadataReaderFactory
            invokevirtual org.springframework.core.type.classreading.CachingMetadataReaderFactory.clearCache:()V
        68: .line 362
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.util.Set alreadyParsed
        end local 6 // java.util.Set candidates
        end local 5 // org.springframework.context.annotation.ConfigurationClassParser parser
        end local 4 // org.springframework.beans.factory.config.SingletonBeanRegistry sbr
        end local 3 // java.lang.String[] candidateNames
        end local 2 // java.util.List configCandidates
        end local 1 // org.springframework.beans.factory.support.BeanDefinitionRegistry registry
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   69     0                  this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0   69     1              registry  Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;
            1   69     2      configCandidates  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanDefinitionHolder;>;
            2   69     3        candidateNames  [Ljava/lang/String;
            4   12     4              beanName  Ljava/lang/String;
            5   12     8               beanDef  Lorg/springframework/beans/factory/config/BeanDefinition;
           18   69     4                   sbr  Lorg/springframework/beans/factory/config/SingletonBeanRegistry;
           22   25     5             generator  Lorg/springframework/beans/factory/support/BeanNameGenerator;
           31   69     5                parser  Lorg/springframework/context/annotation/ConfigurationClassParser;
           32   69     6            candidates  Ljava/util/Set<Lorg/springframework/beans/factory/config/BeanDefinitionHolder;>;
           33   69     7         alreadyParsed  Ljava/util/Set<Lorg/springframework/context/annotation/ConfigurationClass;>;
           36   63     8         configClasses  Ljava/util/Set<Lorg/springframework/context/annotation/ConfigurationClass;>;
           47   63     9     newCandidateNames  [Ljava/lang/String;
           48   63    10     oldCandidateNames  Ljava/util/Set<Ljava/lang/String;>;
           49   63    11  alreadyParsedClasses  Ljava/util/Set<Ljava/lang/String;>;
           51   52    12    configurationClass  Lorg/springframework/context/annotation/ConfigurationClass;
           55   60    12         candidateName  Ljava/lang/String;
           57   60    16                    bd  Lorg/springframework/beans/factory/config/BeanDefinition;
    MethodParameters:
          Name  Flags
      registry  

  public void enhanceConfigurationClasses(org.springframework.beans.factory.config.ConfigurableListableBeanFactory);
    descriptor: (Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
        start local 1 // org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory
         0: .line 371
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 2 /* configBeanDefs */
        start local 2 // java.util.Map configBeanDefs
         1: .line 372
            aload 1 /* beanFactory */
            invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getBeanDefinitionNames:()[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 17
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map top int int java.lang.String[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* beanName */
        start local 3 // java.lang.String beanName
         3: .line 373
            aload 1 /* beanFactory */
            aload 3 /* beanName */
            invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getBeanDefinition:(Ljava/lang/String;)Lorg/springframework/beans/factory/config/BeanDefinition;
            astore 7 /* beanDef */
        start local 7 // org.springframework.beans.factory.config.BeanDefinition beanDef
         4: .line 374
            aload 7 /* beanDef */
            invokestatic org.springframework.context.annotation.ConfigurationClassUtils.isFullConfigurationClass:(Lorg/springframework/beans/factory/config/BeanDefinition;)Z
            ifeq 16
         5: .line 375
            aload 7 /* beanDef */
            instanceof org.springframework.beans.factory.support.AbstractBeanDefinition
            ifne 9
         6: .line 376
            new org.springframework.beans.factory.BeanDefinitionStoreException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot enhance @Configuration bean definition '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 377
            aload 3 /* beanName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' since it is not stored in an AbstractBeanDefinition subclass"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 376
            invokespecial org.springframework.beans.factory.BeanDefinitionStoreException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 379
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map java.lang.String int int java.lang.String[] org.springframework.beans.factory.config.BeanDefinition
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 15
            aload 1 /* beanFactory */
            aload 3 /* beanName */
            invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.containsSingleton:(Ljava/lang/String;)Z
            ifeq 15
        10: .line 380
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Cannot enhance @Configuration bean definition '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* beanName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 381
            ldc "' since its singleton instance has been created too early. The typical cause "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 382
            ldc "is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 383
            ldc "return type: Consider declaring such methods as 'static'."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 380
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
        15: .line 385
      StackMap locals:
      StackMap stack:
            aload 2 /* configBeanDefs */
            aload 3 /* beanName */
            aload 7 /* beanDef */
            checkcast org.springframework.beans.factory.support.AbstractBeanDefinition
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // org.springframework.beans.factory.config.BeanDefinition beanDef
        end local 3 // java.lang.String beanName
        16: .line 372
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map top int int java.lang.String[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        17: iload 4
            iload 5
            if_icmplt 2
        18: .line 388
            aload 2 /* configBeanDefs */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 20
        19: .line 390
            return
        20: .line 393
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map
      StackMap stack:
            new org.springframework.context.annotation.ConfigurationClassEnhancer
            dup
            invokespecial org.springframework.context.annotation.ConfigurationClassEnhancer.<init>:()V
            astore 3 /* enhancer */
        start local 3 // org.springframework.context.annotation.ConfigurationClassEnhancer enhancer
        21: .line 394
            aload 2 /* configBeanDefs */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 37
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map org.springframework.context.annotation.ConfigurationClassEnhancer top java.util.Iterator
      StackMap stack:
        22: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
        23: .line 395
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.springframework.beans.factory.support.AbstractBeanDefinition
            astore 6 /* beanDef */
        start local 6 // org.springframework.beans.factory.support.AbstractBeanDefinition beanDef
        24: .line 397
            aload 6 /* beanDef */
            getstatic org.springframework.aop.framework.autoproxy.AutoProxyUtils.PRESERVE_TARGET_CLASS_ATTRIBUTE:Ljava/lang/String;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        25: .line 400
            aload 6 /* beanDef */
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.beanClassLoader:Ljava/lang/ClassLoader;
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass:(Ljava/lang/ClassLoader;)Ljava/lang/Class;
            astore 7 /* configClass */
        start local 7 // java.lang.Class configClass
        26: .line 401
            aload 7 /* configClass */
            ifnull 37
        27: .line 402
            aload 3 /* enhancer */
            aload 7 /* configClass */
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.beanClassLoader:Ljava/lang/ClassLoader;
            invokevirtual org.springframework.context.annotation.ConfigurationClassEnhancer.enhance:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Class;
            astore 8 /* enhancedClass */
        start local 8 // java.lang.Class enhancedClass
        28: .line 403
            aload 7 /* configClass */
            aload 8 /* enhancedClass */
            if_acmpeq 37
        29: .line 404
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 33
        30: .line 405
            aload 0 /* this */
            getfield org.springframework.context.annotation.ConfigurationClassPostProcessor.logger:Lorg/apache/commons/logging/Log;
            ldc "Replacing bean definition '%s' existing class '%s' with enhanced class '%s'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        31: .line 406
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            aastore
            dup
            iconst_1
            aload 7 /* configClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 8 /* enhancedClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        32: .line 405
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
        33: .line 408
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map org.springframework.context.annotation.ConfigurationClassEnhancer java.util.Map$Entry java.util.Iterator org.springframework.beans.factory.support.AbstractBeanDefinition java.lang.Class java.lang.Class
      StackMap stack:
            aload 6 /* beanDef */
            aload 8 /* enhancedClass */
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.setBeanClass:(Ljava/lang/Class;)V
        end local 8 // java.lang.Class enhancedClass
        end local 7 // java.lang.Class configClass
        34: .line 411
            goto 37
        35: .line 412
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map org.springframework.context.annotation.ConfigurationClassEnhancer java.util.Map$Entry java.util.Iterator org.springframework.beans.factory.support.AbstractBeanDefinition
      StackMap stack: java.lang.Throwable
            astore 7 /* ex */
        start local 7 // java.lang.Throwable ex
        36: .line 413
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot load configuration class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* beanDef */
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.getBeanClassName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Throwable ex
        end local 6 // org.springframework.beans.factory.support.AbstractBeanDefinition beanDef
        end local 4 // java.util.Map$Entry entry
        37: .line 394
      StackMap locals: org.springframework.context.annotation.ConfigurationClassPostProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map org.springframework.context.annotation.ConfigurationClassEnhancer top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        38: .line 416
            return
        end local 3 // org.springframework.context.annotation.ConfigurationClassEnhancer enhancer
        end local 2 // java.util.Map configBeanDefs
        end local 1 // org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory
        end local 0 // org.springframework.context.annotation.ConfigurationClassPostProcessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   39     0            this  Lorg/springframework/context/annotation/ConfigurationClassPostProcessor;
            0   39     1     beanFactory  Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
            1   39     2  configBeanDefs  Ljava/util/Map<Ljava/lang/String;Lorg/springframework/beans/factory/support/AbstractBeanDefinition;>;
            3   16     3        beanName  Ljava/lang/String;
            4   16     7         beanDef  Lorg/springframework/beans/factory/config/BeanDefinition;
           21   39     3        enhancer  Lorg/springframework/context/annotation/ConfigurationClassEnhancer;
           23   37     4           entry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/springframework/beans/factory/support/AbstractBeanDefinition;>;
           24   37     6         beanDef  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
           26   34     7     configClass  Ljava/lang/Class<*>;
           28   34     8   enhancedClass  Ljava/lang/Class<*>;
           36   37     7              ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          25    34      35  Class java.lang.Throwable
    MethodParameters:
             Name  Flags
      beanFactory  

  private static int lambda$0(org.springframework.beans.factory.config.BeanDefinitionHolder, org.springframework.beans.factory.config.BeanDefinitionHolder);
    descriptor: (Lorg/springframework/beans/factory/config/BeanDefinitionHolder;Lorg/springframework/beans/factory/config/BeanDefinitionHolder;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.springframework.beans.factory.config.BeanDefinitionHolder bd1
        start local 1 // org.springframework.beans.factory.config.BeanDefinitionHolder bd2
         0: .line 285
            aload 0 /* bd1 */
            invokevirtual org.springframework.beans.factory.config.BeanDefinitionHolder.getBeanDefinition:()Lorg/springframework/beans/factory/config/BeanDefinition;
            invokestatic org.springframework.context.annotation.ConfigurationClassUtils.getOrder:(Lorg/springframework/beans/factory/config/BeanDefinition;)I
            istore 2 /* i1 */
        start local 2 // int i1
         1: .line 286
            aload 1 /* bd2 */
            invokevirtual org.springframework.beans.factory.config.BeanDefinitionHolder.getBeanDefinition:()Lorg/springframework/beans/factory/config/BeanDefinition;
            invokestatic org.springframework.context.annotation.ConfigurationClassUtils.getOrder:(Lorg/springframework/beans/factory/config/BeanDefinition;)I
            istore 3 /* i2 */
        start local 3 // int i2
         2: .line 287
            iload 2 /* i1 */
            iload 3 /* i2 */
            invokestatic java.lang.Integer.compare:(II)I
            ireturn
        end local 3 // int i2
        end local 2 // int i1
        end local 1 // org.springframework.beans.factory.config.BeanDefinitionHolder bd2
        end local 0 // org.springframework.beans.factory.config.BeanDefinitionHolder bd1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   bd1  Lorg/springframework/beans/factory/config/BeanDefinitionHolder;
            0    3     1   bd2  Lorg/springframework/beans/factory/config/BeanDefinitionHolder;
            1    3     2    i1  I
            2    3     3    i2  I
}
SourceFile: "ConfigurationClassPostProcessor.java"
NestMembers:
  org.springframework.context.annotation.ConfigurationClassPostProcessor$1  org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.springframework.context.annotation.ConfigurationClassPostProcessor$1
  private ImportAwareBeanPostProcessor = org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor of org.springframework.context.annotation.ConfigurationClassPostProcessor