class org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata
  super_class: java.lang.Object
{
  private final java.lang.Class<?> targetClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final java.util.Collection<org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement> initMethods;
    descriptor: Ljava/util/Collection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;

  private final java.util.Collection<org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement> destroyMethods;
    descriptor: Ljava/util/Collection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;

  private volatile java.util.Set<org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement> checkedInitMethods;
    descriptor: Ljava/util/Set;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/Set<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private volatile java.util.Set<org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement> checkedDestroyMethods;
    descriptor: Ljava/util/Set;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/Set<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  final org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor this$0;
    descriptor: Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(java.lang.Class<?>, java.util.Collection<org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement>, java.util.Collection<org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement>);
    descriptor: (Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;Ljava/lang/Class;Ljava/util/Collection;Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
        start local 2 // java.lang.Class targetClass
        start local 3 // java.util.Collection initMethods
        start local 4 // java.util.Collection destroyMethods
         0: .line 290
            aload 0 /* this */
            aload 1
            putfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
         1: .line 289
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 292
            aload 0 /* this */
            aload 2 /* targetClass */
            putfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.targetClass:Ljava/lang/Class;
         3: .line 293
            aload 0 /* this */
            aload 3 /* initMethods */
            putfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.initMethods:Ljava/util/Collection;
         4: .line 294
            aload 0 /* this */
            aload 4 /* destroyMethods */
            putfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.destroyMethods:Ljava/util/Collection;
         5: .line 295
            return
        end local 4 // java.util.Collection destroyMethods
        end local 3 // java.util.Collection initMethods
        end local 2 // java.lang.Class targetClass
        end local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata;
            0    6     2     targetClass  Ljava/lang/Class<*>;
            0    6     3     initMethods  Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
            0    6     4  destroyMethods  Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
    Signature: (Ljava/lang/Class<*>;Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;)V
    MethodParameters:
                Name  Flags
      this$0          final
      targetClass     
      initMethods     
      destroyMethods  

  public void checkConfigMembers(org.springframework.beans.factory.support.RootBeanDefinition);
    descriptor: (Lorg/springframework/beans/factory/support/RootBeanDefinition;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
        start local 1 // org.springframework.beans.factory.support.RootBeanDefinition beanDefinition
         0: .line 298
            new java.util.LinkedHashSet
            dup
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.initMethods:Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 2 /* checkedInitMethods */
        start local 2 // java.util.Set checkedInitMethods
         1: .line 299
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.initMethods:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata org.springframework.beans.factory.support.RootBeanDefinition java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement
            astore 3 /* element */
        start local 3 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement element
         3: .line 300
            aload 3 /* element */
            invokevirtual org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.getIdentifier:()Ljava/lang/String;
            astore 5 /* methodIdentifier */
        start local 5 // java.lang.String methodIdentifier
         4: .line 301
            aload 1 /* beanDefinition */
            aload 5 /* methodIdentifier */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isExternallyManagedInitMethod:(Ljava/lang/String;)Z
            ifne 9
         5: .line 302
            aload 1 /* beanDefinition */
            aload 5 /* methodIdentifier */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.registerExternallyManagedInitMethod:(Ljava/lang/String;)V
         6: .line 303
            aload 2 /* checkedInitMethods */
            aload 3 /* element */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 304
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 9
         8: .line 305
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Registered init method on class ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.targetClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()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;
            aload 3 /* element */
            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.trace:(Ljava/lang/Object;)V
        end local 5 // java.lang.String methodIdentifier
        end local 3 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement element
         9: .line 299
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 309
            new java.util.LinkedHashSet
            dup
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.destroyMethods:Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 3 /* checkedDestroyMethods */
        start local 3 // java.util.Set checkedDestroyMethods
        11: .line 310
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.destroyMethods:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 19
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata org.springframework.beans.factory.support.RootBeanDefinition java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        12: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement
            astore 4 /* element */
        start local 4 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement element
        13: .line 311
            aload 4 /* element */
            invokevirtual org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.getIdentifier:()Ljava/lang/String;
            astore 6 /* methodIdentifier */
        start local 6 // java.lang.String methodIdentifier
        14: .line 312
            aload 1 /* beanDefinition */
            aload 6 /* methodIdentifier */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isExternallyManagedDestroyMethod:(Ljava/lang/String;)Z
            ifne 19
        15: .line 313
            aload 1 /* beanDefinition */
            aload 6 /* methodIdentifier */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.registerExternallyManagedDestroyMethod:(Ljava/lang/String;)V
        16: .line 314
            aload 3 /* checkedDestroyMethods */
            aload 4 /* element */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 315
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 19
        18: .line 316
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Registered destroy method on class ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.targetClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()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;
            aload 4 /* element */
            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.trace:(Ljava/lang/Object;)V
        end local 6 // java.lang.String methodIdentifier
        end local 4 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement element
        19: .line 310
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        20: .line 320
            aload 0 /* this */
            aload 2 /* checkedInitMethods */
            putfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.checkedInitMethods:Ljava/util/Set;
        21: .line 321
            aload 0 /* this */
            aload 3 /* checkedDestroyMethods */
            putfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.checkedDestroyMethods:Ljava/util/Set;
        22: .line 322
            return
        end local 3 // java.util.Set checkedDestroyMethods
        end local 2 // java.util.Set checkedInitMethods
        end local 1 // org.springframework.beans.factory.support.RootBeanDefinition beanDefinition
        end local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   23     0                   this  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata;
            0   23     1         beanDefinition  Lorg/springframework/beans/factory/support/RootBeanDefinition;
            1   23     2     checkedInitMethods  Ljava/util/Set<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
            3    9     3                element  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;
            4    9     5       methodIdentifier  Ljava/lang/String;
           11   23     3  checkedDestroyMethods  Ljava/util/Set<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
           13   19     4                element  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;
           14   19     6       methodIdentifier  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      beanDefinition  

  public void invokeInitMethods(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.String beanName
         0: .line 325
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.checkedInitMethods:Ljava/util/Set;
            astore 3 /* checkedInitMethods */
        start local 3 // java.util.Collection checkedInitMethods
         1: .line 327
            aload 3 /* checkedInitMethods */
            ifnull 2
            aload 3 /* checkedInitMethods */
            goto 3
      StackMap locals: java.util.Collection
      StackMap stack:
         2: aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.initMethods:Ljava/util/Collection;
         3: .line 326
      StackMap locals:
      StackMap stack: java.util.Collection
            astore 4 /* initMethodsToIterate */
        start local 4 // java.util.Collection initMethodsToIterate
         4: .line 328
            aload 4 /* initMethodsToIterate */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 11
         5: .line 329
            aload 4 /* initMethodsToIterate */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata java.lang.Object java.lang.String java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement
            astore 5 /* element */
        start local 5 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement element
         7: .line 330
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 9
         8: .line 331
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Invoking init method on bean '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* beanName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* element */
            invokevirtual org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.getMethod:()Ljava/lang/reflect/Method;
            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.trace:(Ljava/lang/Object;)V
         9: .line 333
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata java.lang.Object java.lang.String java.util.Collection java.util.Collection org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement java.util.Iterator
      StackMap stack:
            aload 5 /* element */
            aload 1 /* target */
            invokevirtual org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke:(Ljava/lang/Object;)V
        end local 5 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement element
        10: .line 329
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata java.lang.Object java.lang.String java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 336
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata java.lang.Object java.lang.String java.util.Collection java.util.Collection
      StackMap stack:
            return
        end local 4 // java.util.Collection initMethodsToIterate
        end local 3 // java.util.Collection checkedInitMethods
        end local 2 // java.lang.String beanName
        end local 1 // java.lang.Object target
        end local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0                  this  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata;
            0   12     1                target  Ljava/lang/Object;
            0   12     2              beanName  Ljava/lang/String;
            1   12     3    checkedInitMethods  Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
            4   12     4  initMethodsToIterate  Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
            7   10     5               element  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;
    Exceptions:
      throws java.lang.Throwable
    MethodParameters:
          Name  Flags
      target    
      beanName  

  public void invokeDestroyMethods(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.String beanName
         0: .line 339
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.checkedDestroyMethods:Ljava/util/Set;
            astore 3 /* checkedDestroyMethods */
        start local 3 // java.util.Collection checkedDestroyMethods
         1: .line 341
            aload 3 /* checkedDestroyMethods */
            ifnull 2
            aload 3 /* checkedDestroyMethods */
            goto 3
      StackMap locals: java.util.Collection
      StackMap stack:
         2: aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.destroyMethods:Ljava/util/Collection;
         3: .line 340
      StackMap locals:
      StackMap stack: java.util.Collection
            astore 4 /* destroyMethodsToUse */
        start local 4 // java.util.Collection destroyMethodsToUse
         4: .line 342
            aload 4 /* destroyMethodsToUse */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 11
         5: .line 343
            aload 4 /* destroyMethodsToUse */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata java.lang.Object java.lang.String java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement
            astore 5 /* element */
        start local 5 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement element
         7: .line 344
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 9
         8: .line 345
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.this$0:Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor;
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Invoking destroy method on bean '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* beanName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* element */
            invokevirtual org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.getMethod:()Ljava/lang/reflect/Method;
            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.trace:(Ljava/lang/Object;)V
         9: .line 347
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata java.lang.Object java.lang.String java.util.Collection java.util.Collection org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement java.util.Iterator
      StackMap stack:
            aload 5 /* element */
            aload 1 /* target */
            invokevirtual org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke:(Ljava/lang/Object;)V
        end local 5 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement element
        10: .line 343
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata java.lang.Object java.lang.String java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 350
      StackMap locals: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata java.lang.Object java.lang.String java.util.Collection java.util.Collection
      StackMap stack:
            return
        end local 4 // java.util.Collection destroyMethodsToUse
        end local 3 // java.util.Collection checkedDestroyMethods
        end local 2 // java.lang.String beanName
        end local 1 // java.lang.Object target
        end local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   12     0                   this  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata;
            0   12     1                 target  Ljava/lang/Object;
            0   12     2               beanName  Ljava/lang/String;
            1   12     3  checkedDestroyMethods  Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
            4   12     4    destroyMethodsToUse  Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
            7   10     5                element  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;
    Exceptions:
      throws java.lang.Throwable
    MethodParameters:
          Name  Flags
      target    
      beanName  

  public boolean hasDestroyMethods();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
         0: .line 353
            aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.checkedDestroyMethods:Ljava/util/Set;
            astore 1 /* checkedDestroyMethods */
        start local 1 // java.util.Collection checkedDestroyMethods
         1: .line 355
            aload 1 /* checkedDestroyMethods */
            ifnull 2
            aload 1 /* checkedDestroyMethods */
            goto 3
      StackMap locals: java.util.Collection
      StackMap stack:
         2: aload 0 /* this */
            getfield org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.destroyMethods:Ljava/util/Collection;
         3: .line 354
      StackMap locals:
      StackMap stack: java.util.Collection
            astore 2 /* destroyMethodsToUse */
        start local 2 // java.util.Collection destroyMethodsToUse
         4: .line 356
            aload 2 /* destroyMethodsToUse */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 5
            iconst_0
            goto 6
      StackMap locals: java.util.Collection
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 2 // java.util.Collection destroyMethodsToUse
        end local 1 // java.util.Collection checkedDestroyMethods
        end local 0 // org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    7     0                   this  Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata;
            1    7     1  checkedDestroyMethods  Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
            4    7     2    destroyMethodsToUse  Ljava/util/Collection<Lorg/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor$LifecycleElement;>;
}
SourceFile: "InitDestroyAnnotationBeanPostProcessor.java"
NestHost: org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor
InnerClasses:
  private LifecycleElement = org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement of org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor
  private LifecycleMetadata = org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata of org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor