class org.springframework.aop.config.ConfigBeanDefinitionParser implements org.springframework.beans.factory.xml.BeanDefinitionParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.aop.config.ConfigBeanDefinitionParser
  super_class: java.lang.Object
{
  private static final java.lang.String ASPECT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "aspect"

  private static final java.lang.String EXPRESSION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "expression"

  private static final java.lang.String ID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "id"

  private static final java.lang.String POINTCUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "pointcut"

  private static final java.lang.String ADVICE_BEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "adviceBeanName"

  private static final java.lang.String ADVISOR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "advisor"

  private static final java.lang.String ADVICE_REF;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "advice-ref"

  private static final java.lang.String POINTCUT_REF;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "pointcut-ref"

  private static final java.lang.String REF;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ref"

  private static final java.lang.String BEFORE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "before"

  private static final java.lang.String DECLARE_PARENTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "declare-parents"

  private static final java.lang.String TYPE_PATTERN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "types-matching"

  private static final java.lang.String DEFAULT_IMPL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "default-impl"

  private static final java.lang.String DELEGATE_REF;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "delegate-ref"

  private static final java.lang.String IMPLEMENT_INTERFACE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "implement-interface"

  private static final java.lang.String AFTER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "after"

  private static final java.lang.String AFTER_RETURNING_ELEMENT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "after-returning"

  private static final java.lang.String AFTER_THROWING_ELEMENT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "after-throwing"

  private static final java.lang.String AROUND;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "around"

  private static final java.lang.String RETURNING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "returning"

  private static final java.lang.String RETURNING_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "returningName"

  private static final java.lang.String THROWING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "throwing"

  private static final java.lang.String THROWING_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "throwingName"

  private static final java.lang.String ARG_NAMES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "arg-names"

  private static final java.lang.String ARG_NAMES_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "argumentNames"

  private static final java.lang.String ASPECT_NAME_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "aspectName"

  private static final java.lang.String DECLARATION_ORDER_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "declarationOrder"

  private static final java.lang.String ORDER_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "order"

  private static final int METHOD_INDEX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int POINTCUT_INDEX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int ASPECT_INSTANCE_FACTORY_INDEX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

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

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 96
            aload 0 /* this */
            new org.springframework.beans.factory.parsing.ParseState
            dup
            invokespecial org.springframework.beans.factory.parsing.ParseState.<init>:()V
            putfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
         2: .line 62
            return
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;

  public org.springframework.beans.factory.config.BeanDefinition parse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/config/BeanDefinition;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element element
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 103
            new org.springframework.beans.factory.parsing.CompositeComponentDefinition
            dup
            aload 1 /* element */
            invokeinterface org.w3c.dom.Element.getTagName:()Ljava/lang/String;
            aload 2 /* parserContext */
            aload 1 /* element */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
            invokespecial org.springframework.beans.factory.parsing.CompositeComponentDefinition.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 102
            astore 3 /* compositeDef */
        start local 3 // org.springframework.beans.factory.parsing.CompositeComponentDefinition compositeDef
         2: .line 104
            aload 2 /* parserContext */
            aload 3 /* compositeDef */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.pushContainingComponent:(Lorg/springframework/beans/factory/parsing/CompositeComponentDefinition;)V
         3: .line 106
            aload 0 /* this */
            aload 2 /* parserContext */
            aload 1 /* element */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.configureAutoProxyCreator:(Lorg/springframework/beans/factory/xml/ParserContext;Lorg/w3c/dom/Element;)V
         4: .line 108
            aload 1 /* element */
            invokestatic org.springframework.util.xml.DomUtils.getChildElements:(Lorg/w3c/dom/Element;)Ljava/util/List;
            astore 4 /* childElts */
        start local 4 // java.util.List childElts
         5: .line 109
            aload 4 /* childElts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext org.springframework.beans.factory.parsing.CompositeComponentDefinition java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.w3c.dom.Element
            astore 5 /* elt */
        start local 5 // org.w3c.dom.Element elt
         7: .line 110
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getDelegate:()Lorg/springframework/beans/factory/xml/BeanDefinitionParserDelegate;
            aload 5 /* elt */
            invokevirtual org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getLocalName:(Lorg/w3c/dom/Node;)Ljava/lang/String;
            astore 7 /* localName */
        start local 7 // java.lang.String localName
         8: .line 111
            ldc "pointcut"
            aload 7 /* localName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 112
            aload 0 /* this */
            aload 5 /* elt */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.parsePointcut:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            pop
        10: .line 113
            goto 16
        11: .line 114
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext org.springframework.beans.factory.parsing.CompositeComponentDefinition java.util.List org.w3c.dom.Element java.util.Iterator java.lang.String
      StackMap stack:
            ldc "advisor"
            aload 7 /* localName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 115
            aload 0 /* this */
            aload 5 /* elt */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.parseAdvisor:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
        13: .line 116
            goto 16
        14: .line 117
      StackMap locals:
      StackMap stack:
            ldc "aspect"
            aload 7 /* localName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 118
            aload 0 /* this */
            aload 5 /* elt */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.parseAspect:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
        end local 7 // java.lang.String localName
        end local 5 // org.w3c.dom.Element elt
        16: .line 109
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext org.springframework.beans.factory.parsing.CompositeComponentDefinition java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        17: .line 122
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.popAndRegisterContainingComponent:()V
        18: .line 123
            aconst_null
            areturn
        end local 4 // java.util.List childElts
        end local 3 // org.springframework.beans.factory.parsing.CompositeComponentDefinition compositeDef
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element element
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   19     1        element  Lorg/w3c/dom/Element;
            0   19     2  parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            2   19     3   compositeDef  Lorg/springframework/beans/factory/parsing/CompositeComponentDefinition;
            5   19     4      childElts  Ljava/util/List<Lorg/w3c/dom/Element;>;
            7   16     5            elt  Lorg/w3c/dom/Element;
            8   16     7      localName  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      element        
      parserContext  

  private void configureAutoProxyCreator(org.springframework.beans.factory.xml.ParserContext, org.w3c.dom.Element);
    descriptor: (Lorg/springframework/beans/factory/xml/ParserContext;Lorg/w3c/dom/Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.springframework.beans.factory.xml.ParserContext parserContext
        start local 2 // org.w3c.dom.Element element
         0: .line 133
            aload 1 /* parserContext */
            aload 2 /* element */
            invokestatic org.springframework.aop.config.AopNamespaceUtils.registerAspectJAutoProxyCreatorIfNecessary:(Lorg/springframework/beans/factory/xml/ParserContext;Lorg/w3c/dom/Element;)V
         1: .line 134
            return
        end local 2 // org.w3c.dom.Element element
        end local 1 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0    2     1  parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            0    2     2        element  Lorg/w3c/dom/Element;
    MethodParameters:
               Name  Flags
      parserContext  
      element        

  private void parseAdvisor(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element advisorElement
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 142
            aload 0 /* this */
            aload 1 /* advisorElement */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.createAdvisorBeanDefinition:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            astore 3 /* advisorDef */
        start local 3 // org.springframework.beans.factory.support.AbstractBeanDefinition advisorDef
         1: .line 143
            aload 1 /* advisorElement */
            ldc "id"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* id */
        start local 4 // java.lang.String id
         2: .line 146
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            new org.springframework.aop.config.AdvisorEntry
            dup
            aload 4 /* id */
            invokespecial org.springframework.aop.config.AdvisorEntry.<init>:(Ljava/lang/String;)V
            invokevirtual org.springframework.beans.factory.parsing.ParseState.push:(Lorg/springframework/beans/factory/parsing/ParseState$Entry;)V
         3: .line 147
            aload 4 /* id */
            astore 5 /* advisorBeanName */
        start local 5 // java.lang.String advisorBeanName
         4: .line 148
            aload 5 /* advisorBeanName */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 7
         5: .line 149
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getRegistry:()Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;
            aload 5 /* advisorBeanName */
            aload 3 /* advisorDef */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.registerBeanDefinition:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;)V
         6: .line 150
            goto 8
         7: .line 152
      StackMap locals: org.springframework.beans.factory.support.AbstractBeanDefinition java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
            aload 3 /* advisorDef */
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.registerWithGeneratedName:(Lorg/springframework/beans/factory/config/BeanDefinition;)Ljava/lang/String;
            astore 5 /* advisorBeanName */
         8: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* advisorElement */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.parsePointcutProperty:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Ljava/lang/Object;
            astore 6 /* pointcut */
        start local 6 // java.lang.Object pointcut
         9: .line 156
            aload 6 /* pointcut */
            instanceof org.springframework.beans.factory.config.BeanDefinition
            ifeq 15
        10: .line 157
            aload 3 /* advisorDef */
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "pointcut"
            aload 6 /* pointcut */
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
        11: .line 158
            aload 2 /* parserContext */
        12: .line 159
            new org.springframework.aop.config.AdvisorComponentDefinition
            dup
            aload 5 /* advisorBeanName */
            aload 3 /* advisorDef */
            aload 6 /* pointcut */
            checkcast org.springframework.beans.factory.config.BeanDefinition
            invokespecial org.springframework.aop.config.AdvisorComponentDefinition.<init>:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;Lorg/springframework/beans/factory/config/BeanDefinition;)V
        13: .line 158
            invokevirtual org.springframework.beans.factory.xml.ParserContext.registerComponent:(Lorg/springframework/beans/factory/parsing/ComponentDefinition;)V
        14: .line 160
            goto 24
        15: .line 161
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* pointcut */
            instanceof java.lang.String
            ifeq 24
        16: .line 162
            aload 3 /* advisorDef */
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "pointcut"
            new org.springframework.beans.factory.config.RuntimeBeanReference
            dup
            aload 6 /* pointcut */
            checkcast java.lang.String
            invokespecial org.springframework.beans.factory.config.RuntimeBeanReference.<init>:(Ljava/lang/String;)V
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
        17: .line 163
            aload 2 /* parserContext */
        18: .line 164
            new org.springframework.aop.config.AdvisorComponentDefinition
            dup
            aload 5 /* advisorBeanName */
            aload 3 /* advisorDef */
            invokespecial org.springframework.aop.config.AdvisorComponentDefinition.<init>:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;)V
        19: .line 163
            invokevirtual org.springframework.beans.factory.xml.ParserContext.registerComponent:(Lorg/springframework/beans/factory/parsing/ComponentDefinition;)V
        end local 6 // java.lang.Object pointcut
        end local 5 // java.lang.String advisorBeanName
        20: .line 166
            goto 24
        21: .line 167
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext org.springframework.beans.factory.support.AbstractBeanDefinition java.lang.String
      StackMap stack: java.lang.Throwable
            astore 7
        22: .line 168
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        23: .line 169
            aload 7
            athrow
        24: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        25: .line 170
            return
        end local 4 // java.lang.String id
        end local 3 // org.springframework.beans.factory.support.AbstractBeanDefinition advisorDef
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element advisorElement
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0             this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   26     1   advisorElement  Lorg/w3c/dom/Element;
            0   26     2    parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            1   26     3       advisorDef  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            2   26     4               id  Ljava/lang/String;
            4   20     5  advisorBeanName  Ljava/lang/String;
            9   20     6         pointcut  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2    21      21  any
    MethodParameters:
                Name  Flags
      advisorElement  
      parserContext   

  private org.springframework.beans.factory.support.AbstractBeanDefinition createAdvisorBeanDefinition(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element advisorElement
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 177
            new org.springframework.beans.factory.support.RootBeanDefinition
            dup
            ldc Lorg/springframework/aop/support/DefaultBeanFactoryPointcutAdvisor;
            invokespecial org.springframework.beans.factory.support.RootBeanDefinition.<init>:(Ljava/lang/Class;)V
            astore 3 /* advisorDefinition */
        start local 3 // org.springframework.beans.factory.support.RootBeanDefinition advisorDefinition
         1: .line 178
            aload 3 /* advisorDefinition */
            aload 2 /* parserContext */
            aload 1 /* advisorElement */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.setSource:(Ljava/lang/Object;)V
         2: .line 180
            aload 1 /* advisorElement */
            ldc "advice-ref"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* adviceRef */
        start local 4 // java.lang.String adviceRef
         3: .line 181
            aload 4 /* adviceRef */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifne 8
         4: .line 182
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
         5: .line 183
            ldc "'advice-ref' attribute contains empty value."
            aload 1 /* advisorElement */
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.snapshot:()Lorg/springframework/beans/factory/parsing/ParseState;
         6: .line 182
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.error:(Ljava/lang/String;Ljava/lang/Object;Lorg/springframework/beans/factory/parsing/ParseState;)V
         7: .line 184
            goto 11
         8: .line 186
      StackMap locals: org.springframework.beans.factory.support.RootBeanDefinition java.lang.String
      StackMap stack:
            aload 3 /* advisorDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
         9: .line 187
            ldc "adviceBeanName"
            new org.springframework.beans.factory.config.RuntimeBeanNameReference
            dup
            aload 4 /* adviceRef */
            invokespecial org.springframework.beans.factory.config.RuntimeBeanNameReference.<init>:(Ljava/lang/String;)V
        10: .line 186
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
        11: .line 190
      StackMap locals:
      StackMap stack:
            aload 1 /* advisorElement */
            ldc "order"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 15
        12: .line 191
            aload 3 /* advisorDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
        13: .line 192
            ldc "order"
            aload 1 /* advisorElement */
            ldc "order"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
        14: .line 191
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
        15: .line 195
      StackMap locals:
      StackMap stack:
            aload 3 /* advisorDefinition */
            areturn
        end local 4 // java.lang.String adviceRef
        end local 3 // org.springframework.beans.factory.support.RootBeanDefinition advisorDefinition
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element advisorElement
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   16     1     advisorElement  Lorg/w3c/dom/Element;
            0   16     2      parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            1   16     3  advisorDefinition  Lorg/springframework/beans/factory/support/RootBeanDefinition;
            3   16     4          adviceRef  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      advisorElement  
      parserContext   

  private void parseAspect(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=15, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element aspectElement
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 199
            aload 1 /* aspectElement */
            ldc "id"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* aspectId */
        start local 3 // java.lang.String aspectId
         1: .line 200
            aload 1 /* aspectElement */
            ldc "ref"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* aspectName */
        start local 4 // java.lang.String aspectName
         2: .line 203
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            new org.springframework.aop.config.AspectEntry
            dup
            aload 3 /* aspectId */
            aload 4 /* aspectName */
            invokespecial org.springframework.aop.config.AspectEntry.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual org.springframework.beans.factory.parsing.ParseState.push:(Lorg/springframework/beans/factory/parsing/ParseState$Entry;)V
         3: .line 204
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* beanDefinitions */
        start local 5 // java.util.List beanDefinitions
         4: .line 205
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* beanReferences */
        start local 6 // java.util.List beanReferences
         5: .line 207
            aload 1 /* aspectElement */
            ldc "declare-parents"
            invokestatic org.springframework.util.xml.DomUtils.getChildElementsByTagName:(Lorg/w3c/dom/Element;Ljava/lang/String;)Ljava/util/List;
            astore 7 /* declareParents */
        start local 7 // java.util.List declareParents
         6: .line 208
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         7: goto 11
         8: .line 209
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.lang.String java.lang.String java.util.List java.util.List java.util.List int
      StackMap stack:
            aload 7 /* declareParents */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.w3c.dom.Element
            astore 9 /* declareParentsElement */
        start local 9 // org.w3c.dom.Element declareParentsElement
         9: .line 210
            aload 5 /* beanDefinitions */
            aload 0 /* this */
            aload 9 /* declareParentsElement */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.parseDeclareParents:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.w3c.dom.Element declareParentsElement
        10: .line 208
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 8 /* i */
            aload 7 /* declareParents */
            invokeinterface java.util.List.size:()I
            if_icmplt 8
        end local 8 // int i
        12: .line 215
            aload 1 /* aspectElement */
            invokeinterface org.w3c.dom.Element.getChildNodes:()Lorg/w3c/dom/NodeList;
            astore 8 /* nodeList */
        start local 8 // org.w3c.dom.NodeList nodeList
        13: .line 216
            iconst_0
            istore 9 /* adviceFoundAlready */
        start local 9 // boolean adviceFoundAlready
        14: .line 217
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        15: goto 33
        16: .line 218
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.lang.String java.lang.String java.util.List java.util.List java.util.List org.w3c.dom.NodeList int int
      StackMap stack:
            aload 8 /* nodeList */
            iload 10 /* i */
            invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
            astore 11 /* node */
        start local 11 // org.w3c.dom.Node node
        17: .line 219
            aload 0 /* this */
            aload 11 /* node */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.isAdviceNode:(Lorg/w3c/dom/Node;Lorg/springframework/beans/factory/xml/ParserContext;)Z
            ifeq 32
        18: .line 220
            iload 9 /* adviceFoundAlready */
            ifne 28
        19: .line 221
            iconst_1
            istore 9 /* adviceFoundAlready */
        20: .line 222
            aload 4 /* aspectName */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifne 27
        21: .line 223
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
        22: .line 224
            ldc "<aspect> tag needs aspect bean reference via 'ref' attribute when declaring advices."
        23: .line 225
            aload 1 /* aspectElement */
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.snapshot:()Lorg/springframework/beans/factory/parsing/ParseState;
        24: .line 223
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.error:(Ljava/lang/String;Ljava/lang/Object;Lorg/springframework/beans/factory/parsing/ParseState;)V
        25: .line 248
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        26: .line 226
            return
        27: .line 228
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            aload 6 /* beanReferences */
            new org.springframework.beans.factory.config.RuntimeBeanReference
            dup
            aload 4 /* aspectName */
            invokespecial org.springframework.beans.factory.config.RuntimeBeanReference.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        29: .line 231
            aload 4 /* aspectName */
            iload 10 /* i */
            aload 1 /* aspectElement */
            aload 11 /* node */
            checkcast org.w3c.dom.Element
            aload 2 /* parserContext */
            aload 5 /* beanDefinitions */
            aload 6 /* beanReferences */
        30: .line 230
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.parseAdvice:(Ljava/lang/String;ILorg/w3c/dom/Element;Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;Ljava/util/List;Ljava/util/List;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            astore 12 /* advisorDefinition */
        start local 12 // org.springframework.beans.factory.support.AbstractBeanDefinition advisorDefinition
        31: .line 232
            aload 5 /* beanDefinitions */
            aload 12 /* advisorDefinition */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // org.springframework.beans.factory.support.AbstractBeanDefinition advisorDefinition
        end local 11 // org.w3c.dom.Node node
        32: .line 217
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 10 /* i */
            aload 8 /* nodeList */
            invokeinterface org.w3c.dom.NodeList.getLength:()I
            if_icmplt 16
        end local 10 // int i
        34: .line 236
            aload 0 /* this */
        35: .line 237
            aload 1 /* aspectElement */
            aload 3 /* aspectId */
            aload 5 /* beanDefinitions */
            aload 6 /* beanReferences */
            aload 2 /* parserContext */
        36: .line 236
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.createAspectComponentDefinition:(Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/aop/config/AspectComponentDefinition;
            astore 10 /* aspectComponentDefinition */
        start local 10 // org.springframework.aop.config.AspectComponentDefinition aspectComponentDefinition
        37: .line 238
            aload 2 /* parserContext */
            aload 10 /* aspectComponentDefinition */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.pushContainingComponent:(Lorg/springframework/beans/factory/parsing/CompositeComponentDefinition;)V
        38: .line 240
            aload 1 /* aspectElement */
            ldc "pointcut"
            invokestatic org.springframework.util.xml.DomUtils.getChildElementsByTagName:(Lorg/w3c/dom/Element;Ljava/lang/String;)Ljava/util/List;
            astore 11 /* pointcuts */
        start local 11 // java.util.List pointcuts
        39: .line 241
            aload 11 /* pointcuts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 42
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.lang.String java.lang.String java.util.List java.util.List java.util.List org.w3c.dom.NodeList int org.springframework.aop.config.AspectComponentDefinition java.util.List top java.util.Iterator
      StackMap stack:
        40: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.w3c.dom.Element
            astore 12 /* pointcutElement */
        start local 12 // org.w3c.dom.Element pointcutElement
        41: .line 242
            aload 0 /* this */
            aload 12 /* pointcutElement */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.parsePointcut:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            pop
        end local 12 // org.w3c.dom.Element pointcutElement
        42: .line 241
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        43: .line 245
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.popAndRegisterContainingComponent:()V
        end local 11 // java.util.List pointcuts
        end local 10 // org.springframework.aop.config.AspectComponentDefinition aspectComponentDefinition
        end local 9 // boolean adviceFoundAlready
        end local 8 // org.w3c.dom.NodeList nodeList
        end local 7 // java.util.List declareParents
        end local 6 // java.util.List beanReferences
        end local 5 // java.util.List beanDefinitions
        44: .line 246
            goto 48
        45: .line 247
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.lang.String java.lang.String
      StackMap stack: java.lang.Throwable
            astore 14
        46: .line 248
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        47: .line 249
            aload 14
            athrow
        48: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        49: .line 250
            return
        end local 4 // java.lang.String aspectName
        end local 3 // java.lang.String aspectId
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element aspectElement
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   50     0                       this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   50     1              aspectElement  Lorg/w3c/dom/Element;
            0   50     2              parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            1   50     3                   aspectId  Ljava/lang/String;
            2   50     4                 aspectName  Ljava/lang/String;
            4   44     5            beanDefinitions  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanDefinition;>;
            5   44     6             beanReferences  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanReference;>;
            6   44     7             declareParents  Ljava/util/List<Lorg/w3c/dom/Element;>;
            7   12     8                          i  I
            9   10     9      declareParentsElement  Lorg/w3c/dom/Element;
           13   44     8                   nodeList  Lorg/w3c/dom/NodeList;
           14   44     9         adviceFoundAlready  Z
           15   34    10                          i  I
           17   32    11                       node  Lorg/w3c/dom/Node;
           31   32    12          advisorDefinition  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
           37   44    10  aspectComponentDefinition  Lorg/springframework/aop/config/AspectComponentDefinition;
           39   44    11                  pointcuts  Ljava/util/List<Lorg/w3c/dom/Element;>;
           41   42    12            pointcutElement  Lorg/w3c/dom/Element;
      Exception table:
        from    to  target  type
           2    25      45  any
          27    45      45  any
    MethodParameters:
               Name  Flags
      aspectElement  
      parserContext  

  private org.springframework.aop.config.AspectComponentDefinition createAspectComponentDefinition(org.w3c.dom.Element, java.lang.String, java.util.List<org.springframework.beans.factory.config.BeanDefinition>, java.util.List<org.springframework.beans.factory.config.BeanReference>, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/aop/config/AspectComponentDefinition;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=6
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element aspectElement
        start local 2 // java.lang.String aspectId
        start local 3 // java.util.List beanDefs
        start local 4 // java.util.List beanRefs
        start local 5 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 256
            aload 3 /* beanDefs */
            iconst_0
            anewarray org.springframework.beans.factory.config.BeanDefinition
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.springframework.beans.factory.config.BeanDefinition[]
            astore 6 /* beanDefArray */
        start local 6 // org.springframework.beans.factory.config.BeanDefinition[] beanDefArray
         1: .line 257
            aload 4 /* beanRefs */
            iconst_0
            anewarray org.springframework.beans.factory.config.BeanReference
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.springframework.beans.factory.config.BeanReference[]
            astore 7 /* beanRefArray */
        start local 7 // org.springframework.beans.factory.config.BeanReference[] beanRefArray
         2: .line 258
            aload 5 /* parserContext */
            aload 1 /* aspectElement */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* source */
        start local 8 // java.lang.Object source
         3: .line 259
            new org.springframework.aop.config.AspectComponentDefinition
            dup
            aload 2 /* aspectId */
            aload 6 /* beanDefArray */
            aload 7 /* beanRefArray */
            aload 8 /* source */
            invokespecial org.springframework.aop.config.AspectComponentDefinition.<init>:(Ljava/lang/String;[Lorg/springframework/beans/factory/config/BeanDefinition;[Lorg/springframework/beans/factory/config/BeanReference;Ljava/lang/Object;)V
            areturn
        end local 8 // java.lang.Object source
        end local 7 // org.springframework.beans.factory.config.BeanReference[] beanRefArray
        end local 6 // org.springframework.beans.factory.config.BeanDefinition[] beanDefArray
        end local 5 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 4 // java.util.List beanRefs
        end local 3 // java.util.List beanDefs
        end local 2 // java.lang.String aspectId
        end local 1 // org.w3c.dom.Element aspectElement
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0    4     1  aspectElement  Lorg/w3c/dom/Element;
            0    4     2       aspectId  Ljava/lang/String;
            0    4     3       beanDefs  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanDefinition;>;
            0    4     4       beanRefs  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanReference;>;
            0    4     5  parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            1    4     6   beanDefArray  [Lorg/springframework/beans/factory/config/BeanDefinition;
            2    4     7   beanRefArray  [Lorg/springframework/beans/factory/config/BeanReference;
            3    4     8         source  Ljava/lang/Object;
    Signature: (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/util/List<Lorg/springframework/beans/factory/config/BeanDefinition;>;Ljava/util/List<Lorg/springframework/beans/factory/config/BeanReference;>;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/aop/config/AspectComponentDefinition;
    MethodParameters:
               Name  Flags
      aspectElement  
      aspectId       
      beanDefs       
      beanRefs       
      parserContext  

  private boolean isAdviceNode(org.w3c.dom.Node, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Node;Lorg/springframework/beans/factory/xml/ParserContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Node aNode
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 268
            aload 1 /* aNode */
            instanceof org.w3c.dom.Element
            ifne 2
         1: .line 269
            iconst_0
            ireturn
         2: .line 272
      StackMap locals:
      StackMap stack:
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getDelegate:()Lorg/springframework/beans/factory/xml/BeanDefinitionParserDelegate;
            aload 1 /* aNode */
            invokevirtual org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getLocalName:(Lorg/w3c/dom/Node;)Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         3: .line 273
            ldc "before"
            aload 3 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            ldc "after"
            aload 3 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            ldc "after-returning"
            aload 3 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         4: .line 274
            ldc "after-throwing"
            aload 3 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            ldc "around"
            aload 3 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 273
            iconst_0
            ireturn
      StackMap locals: java.lang.String
      StackMap stack:
         6: iconst_1
            ireturn
        end local 3 // java.lang.String name
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Node aNode
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0    7     1          aNode  Lorg/w3c/dom/Node;
            0    7     2  parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            3    7     3           name  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      aNode          
      parserContext  

  private org.springframework.beans.factory.support.AbstractBeanDefinition parseDeclareParents(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element declareParentsElement
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 284
            ldc Lorg/springframework/aop/aspectj/DeclareParentsAdvisor;
            invokestatic org.springframework.beans.factory.support.BeanDefinitionBuilder.rootBeanDefinition:(Ljava/lang/Class;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
            astore 3 /* builder */
        start local 3 // org.springframework.beans.factory.support.BeanDefinitionBuilder builder
         1: .line 285
            aload 3 /* builder */
            aload 1 /* declareParentsElement */
            ldc "implement-interface"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.addConstructorArgValue:(Ljava/lang/Object;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
            pop
         2: .line 286
            aload 3 /* builder */
            aload 1 /* declareParentsElement */
            ldc "types-matching"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.addConstructorArgValue:(Ljava/lang/Object;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
            pop
         3: .line 288
            aload 1 /* declareParentsElement */
            ldc "default-impl"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* defaultImpl */
        start local 4 // java.lang.String defaultImpl
         4: .line 289
            aload 1 /* declareParentsElement */
            ldc "delegate-ref"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* delegateRef */
        start local 5 // java.lang.String delegateRef
         5: .line 291
            aload 4 /* defaultImpl */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 8
            aload 5 /* delegateRef */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifne 8
         6: .line 292
            aload 3 /* builder */
            aload 4 /* defaultImpl */
            invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.addConstructorArgValue:(Ljava/lang/Object;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
            pop
         7: .line 293
            goto 15
         8: .line 294
      StackMap locals: org.springframework.beans.factory.support.BeanDefinitionBuilder java.lang.String java.lang.String
      StackMap stack:
            aload 5 /* delegateRef */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 11
            aload 4 /* defaultImpl */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifne 11
         9: .line 295
            aload 3 /* builder */
            aload 5 /* delegateRef */
            invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.addConstructorArgReference:(Ljava/lang/String;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
            pop
        10: .line 296
            goto 15
        11: .line 298
      StackMap locals:
      StackMap stack:
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
        12: .line 299
            ldc "Exactly one of the default-impl or delegate-ref attributes must be specified"
        13: .line 300
            aload 1 /* declareParentsElement */
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.snapshot:()Lorg/springframework/beans/factory/parsing/ParseState;
        14: .line 298
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.error:(Ljava/lang/String;Ljava/lang/Object;Lorg/springframework/beans/factory/parsing/ParseState;)V
        15: .line 303
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.getBeanDefinition:()Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            astore 6 /* definition */
        start local 6 // org.springframework.beans.factory.support.AbstractBeanDefinition definition
        16: .line 304
            aload 6 /* definition */
            aload 2 /* parserContext */
            aload 1 /* declareParentsElement */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.setSource:(Ljava/lang/Object;)V
        17: .line 305
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
            aload 6 /* definition */
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.registerWithGeneratedName:(Lorg/springframework/beans/factory/config/BeanDefinition;)Ljava/lang/String;
            pop
        18: .line 306
            aload 6 /* definition */
            areturn
        end local 6 // org.springframework.beans.factory.support.AbstractBeanDefinition definition
        end local 5 // java.lang.String delegateRef
        end local 4 // java.lang.String defaultImpl
        end local 3 // org.springframework.beans.factory.support.BeanDefinitionBuilder builder
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element declareParentsElement
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   19     0                   this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   19     1  declareParentsElement  Lorg/w3c/dom/Element;
            0   19     2          parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            1   19     3                builder  Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
            4   19     4            defaultImpl  Ljava/lang/String;
            5   19     5            delegateRef  Ljava/lang/String;
           16   19     6             definition  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    MethodParameters:
                       Name  Flags
      declareParentsElement  
      parserContext          

  private org.springframework.beans.factory.support.AbstractBeanDefinition parseAdvice(java.lang.String, int, org.w3c.dom.Element, org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, java.util.List<org.springframework.beans.factory.config.BeanDefinition>, java.util.List<org.springframework.beans.factory.config.BeanReference>);
    descriptor: (Ljava/lang/String;ILorg/w3c/dom/Element;Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;Ljava/util/List;Ljava/util/List;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=14, args_size=8
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // java.lang.String aspectName
        start local 2 // int order
        start local 3 // org.w3c.dom.Element aspectElement
        start local 4 // org.w3c.dom.Element adviceElement
        start local 5 // org.springframework.beans.factory.xml.ParserContext parserContext
        start local 6 // java.util.List beanDefinitions
        start local 7 // java.util.List beanReferences
         0: .line 320
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            new org.springframework.aop.config.AdviceEntry
            dup
            aload 5 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getDelegate:()Lorg/springframework/beans/factory/xml/BeanDefinitionParserDelegate;
            aload 4 /* adviceElement */
            invokevirtual org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getLocalName:(Lorg/w3c/dom/Node;)Ljava/lang/String;
            invokespecial org.springframework.aop.config.AdviceEntry.<init>:(Ljava/lang/String;)V
            invokevirtual org.springframework.beans.factory.parsing.ParseState.push:(Lorg/springframework/beans/factory/parsing/ParseState$Entry;)V
         1: .line 323
            new org.springframework.beans.factory.support.RootBeanDefinition
            dup
            ldc Lorg/springframework/aop/config/MethodLocatingFactoryBean;
            invokespecial org.springframework.beans.factory.support.RootBeanDefinition.<init>:(Ljava/lang/Class;)V
            astore 8 /* methodDefinition */
        start local 8 // org.springframework.beans.factory.support.RootBeanDefinition methodDefinition
         2: .line 324
            aload 8 /* methodDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "targetBeanName"
            aload 1 /* aspectName */
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         3: .line 325
            aload 8 /* methodDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "methodName"
            aload 4 /* adviceElement */
            ldc "method"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         4: .line 326
            aload 8 /* methodDefinition */
            iconst_1
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.setSynthetic:(Z)V
         5: .line 330
            new org.springframework.beans.factory.support.RootBeanDefinition
            dup
            ldc Lorg/springframework/aop/config/SimpleBeanFactoryAwareAspectInstanceFactory;
            invokespecial org.springframework.beans.factory.support.RootBeanDefinition.<init>:(Ljava/lang/Class;)V
         6: .line 329
            astore 9 /* aspectFactoryDef */
        start local 9 // org.springframework.beans.factory.support.RootBeanDefinition aspectFactoryDef
         7: .line 331
            aload 9 /* aspectFactoryDef */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "aspectBeanName"
            aload 1 /* aspectName */
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         8: .line 332
            aload 9 /* aspectFactoryDef */
            iconst_1
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.setSynthetic:(Z)V
         9: .line 335
            aload 0 /* this */
        10: .line 336
            aload 4 /* adviceElement */
            aload 5 /* parserContext */
            aload 1 /* aspectName */
            iload 2 /* order */
            aload 8 /* methodDefinition */
            aload 9 /* aspectFactoryDef */
        11: .line 337
            aload 6 /* beanDefinitions */
            aload 7 /* beanReferences */
        12: .line 335
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.createAdviceDefinition:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;Ljava/lang/String;ILorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/util/List;Ljava/util/List;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            astore 10 /* adviceDef */
        start local 10 // org.springframework.beans.factory.support.AbstractBeanDefinition adviceDef
        13: .line 340
            new org.springframework.beans.factory.support.RootBeanDefinition
            dup
            ldc Lorg/springframework/aop/aspectj/AspectJPointcutAdvisor;
            invokespecial org.springframework.beans.factory.support.RootBeanDefinition.<init>:(Ljava/lang/Class;)V
            astore 11 /* advisorDefinition */
        start local 11 // org.springframework.beans.factory.support.RootBeanDefinition advisorDefinition
        14: .line 341
            aload 11 /* advisorDefinition */
            aload 5 /* parserContext */
            aload 4 /* adviceElement */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.setSource:(Ljava/lang/Object;)V
        15: .line 342
            aload 11 /* advisorDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getConstructorArgumentValues:()Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
            aload 10 /* adviceDef */
            invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addGenericArgumentValue:(Ljava/lang/Object;)V
        16: .line 343
            aload 3 /* aspectElement */
            ldc "order"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 20
        17: .line 344
            aload 11 /* advisorDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
        18: .line 345
            ldc "order"
            aload 3 /* aspectElement */
            ldc "order"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
        19: .line 344
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
        20: .line 349
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser java.lang.String int org.w3c.dom.Element org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.util.List java.util.List org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.support.AbstractBeanDefinition org.springframework.beans.factory.support.RootBeanDefinition
      StackMap stack:
            aload 5 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
            aload 11 /* advisorDefinition */
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.registerWithGeneratedName:(Lorg/springframework/beans/factory/config/BeanDefinition;)Ljava/lang/String;
            pop
        21: .line 351
            aload 11 /* advisorDefinition */
            astore 13
        22: .line 354
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        23: .line 351
            aload 13
            areturn
        end local 11 // org.springframework.beans.factory.support.RootBeanDefinition advisorDefinition
        end local 10 // org.springframework.beans.factory.support.AbstractBeanDefinition adviceDef
        end local 9 // org.springframework.beans.factory.support.RootBeanDefinition aspectFactoryDef
        end local 8 // org.springframework.beans.factory.support.RootBeanDefinition methodDefinition
        24: .line 353
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser java.lang.String int org.w3c.dom.Element org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.util.List java.util.List
      StackMap stack: java.lang.Throwable
            astore 12
        25: .line 354
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        26: .line 355
            aload 12
            athrow
        end local 7 // java.util.List beanReferences
        end local 6 // java.util.List beanDefinitions
        end local 5 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 4 // org.w3c.dom.Element adviceElement
        end local 3 // org.w3c.dom.Element aspectElement
        end local 2 // int order
        end local 1 // java.lang.String aspectName
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   27     1         aspectName  Ljava/lang/String;
            0   27     2              order  I
            0   27     3      aspectElement  Lorg/w3c/dom/Element;
            0   27     4      adviceElement  Lorg/w3c/dom/Element;
            0   27     5      parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            0   27     6    beanDefinitions  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanDefinition;>;
            0   27     7     beanReferences  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanReference;>;
            2   24     8   methodDefinition  Lorg/springframework/beans/factory/support/RootBeanDefinition;
            7   24     9   aspectFactoryDef  Lorg/springframework/beans/factory/support/RootBeanDefinition;
           13   24    10          adviceDef  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
           14   24    11  advisorDefinition  Lorg/springframework/beans/factory/support/RootBeanDefinition;
      Exception table:
        from    to  target  type
           0    22      24  any
    Signature: (Ljava/lang/String;ILorg/w3c/dom/Element;Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;Ljava/util/List<Lorg/springframework/beans/factory/config/BeanDefinition;>;Ljava/util/List<Lorg/springframework/beans/factory/config/BeanReference;>;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    MethodParameters:
                 Name  Flags
      aspectName       
      order            
      aspectElement    
      adviceElement    
      parserContext    
      beanDefinitions  
      beanReferences   

  private org.springframework.beans.factory.support.AbstractBeanDefinition createAdviceDefinition(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, java.lang.String, int, org.springframework.beans.factory.support.RootBeanDefinition, org.springframework.beans.factory.support.RootBeanDefinition, java.util.List<org.springframework.beans.factory.config.BeanDefinition>, java.util.List<org.springframework.beans.factory.config.BeanReference>);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;Ljava/lang/String;ILorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/util/List;Ljava/util/List;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=9
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element adviceElement
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        start local 3 // java.lang.String aspectName
        start local 4 // int order
        start local 5 // org.springframework.beans.factory.support.RootBeanDefinition methodDef
        start local 6 // org.springframework.beans.factory.support.RootBeanDefinition aspectFactoryDef
        start local 7 // java.util.List beanDefinitions
        start local 8 // java.util.List beanReferences
         0: .line 369
            new org.springframework.beans.factory.support.RootBeanDefinition
            dup
            aload 0 /* this */
            aload 1 /* adviceElement */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.getAdviceClass:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Ljava/lang/Class;
            invokespecial org.springframework.beans.factory.support.RootBeanDefinition.<init>:(Ljava/lang/Class;)V
            astore 9 /* adviceDefinition */
        start local 9 // org.springframework.beans.factory.support.RootBeanDefinition adviceDefinition
         1: .line 370
            aload 9 /* adviceDefinition */
            aload 2 /* parserContext */
            aload 1 /* adviceElement */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.setSource:(Ljava/lang/Object;)V
         2: .line 372
            aload 9 /* adviceDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "aspectName"
            aload 3 /* aspectName */
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         3: .line 373
            aload 9 /* adviceDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "declarationOrder"
            iload 4 /* order */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         4: .line 375
            aload 1 /* adviceElement */
            ldc "returning"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 8
         5: .line 376
            aload 9 /* adviceDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
         6: .line 377
            ldc "returningName"
            aload 1 /* adviceElement */
            ldc "returning"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
         7: .line 376
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         8: .line 379
      StackMap locals: org.springframework.beans.factory.support.RootBeanDefinition
      StackMap stack:
            aload 1 /* adviceElement */
            ldc "throwing"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 12
         9: .line 380
            aload 9 /* adviceDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
        10: .line 381
            ldc "throwingName"
            aload 1 /* adviceElement */
            ldc "throwing"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
        11: .line 380
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
        12: .line 383
      StackMap locals:
      StackMap stack:
            aload 1 /* adviceElement */
            ldc "arg-names"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 16
        13: .line 384
            aload 9 /* adviceDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
        14: .line 385
            ldc "argumentNames"
            aload 1 /* adviceElement */
            ldc "arg-names"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
        15: .line 384
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
        16: .line 388
      StackMap locals:
      StackMap stack:
            aload 9 /* adviceDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getConstructorArgumentValues:()Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
            astore 10 /* cav */
        start local 10 // org.springframework.beans.factory.config.ConstructorArgumentValues cav
        17: .line 389
            aload 10 /* cav */
            iconst_0
            aload 5 /* methodDef */
            invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addIndexedArgumentValue:(ILjava/lang/Object;)V
        18: .line 391
            aload 0 /* this */
            aload 1 /* adviceElement */
            aload 2 /* parserContext */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.parsePointcutProperty:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Ljava/lang/Object;
            astore 11 /* pointcut */
        start local 11 // java.lang.Object pointcut
        19: .line 392
            aload 11 /* pointcut */
            instanceof org.springframework.beans.factory.config.BeanDefinition
            ifeq 23
        20: .line 393
            aload 10 /* cav */
            iconst_1
            aload 11 /* pointcut */
            invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addIndexedArgumentValue:(ILjava/lang/Object;)V
        21: .line 394
            aload 7 /* beanDefinitions */
            aload 11 /* pointcut */
            checkcast org.springframework.beans.factory.config.BeanDefinition
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        22: .line 395
            goto 27
        23: .line 396
      StackMap locals: org.springframework.beans.factory.config.ConstructorArgumentValues java.lang.Object
      StackMap stack:
            aload 11 /* pointcut */
            instanceof java.lang.String
            ifeq 27
        24: .line 397
            new org.springframework.beans.factory.config.RuntimeBeanReference
            dup
            aload 11 /* pointcut */
            checkcast java.lang.String
            invokespecial org.springframework.beans.factory.config.RuntimeBeanReference.<init>:(Ljava/lang/String;)V
            astore 12 /* pointcutRef */
        start local 12 // org.springframework.beans.factory.config.RuntimeBeanReference pointcutRef
        25: .line 398
            aload 10 /* cav */
            iconst_1
            aload 12 /* pointcutRef */
            invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addIndexedArgumentValue:(ILjava/lang/Object;)V
        26: .line 399
            aload 8 /* beanReferences */
            aload 12 /* pointcutRef */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // org.springframework.beans.factory.config.RuntimeBeanReference pointcutRef
        27: .line 402
      StackMap locals:
      StackMap stack:
            aload 10 /* cav */
            iconst_2
            aload 6 /* aspectFactoryDef */
            invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addIndexedArgumentValue:(ILjava/lang/Object;)V
        28: .line 404
            aload 9 /* adviceDefinition */
            areturn
        end local 11 // java.lang.Object pointcut
        end local 10 // org.springframework.beans.factory.config.ConstructorArgumentValues cav
        end local 9 // org.springframework.beans.factory.support.RootBeanDefinition adviceDefinition
        end local 8 // java.util.List beanReferences
        end local 7 // java.util.List beanDefinitions
        end local 6 // org.springframework.beans.factory.support.RootBeanDefinition aspectFactoryDef
        end local 5 // org.springframework.beans.factory.support.RootBeanDefinition methodDef
        end local 4 // int order
        end local 3 // java.lang.String aspectName
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element adviceElement
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   29     0              this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   29     1     adviceElement  Lorg/w3c/dom/Element;
            0   29     2     parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            0   29     3        aspectName  Ljava/lang/String;
            0   29     4             order  I
            0   29     5         methodDef  Lorg/springframework/beans/factory/support/RootBeanDefinition;
            0   29     6  aspectFactoryDef  Lorg/springframework/beans/factory/support/RootBeanDefinition;
            0   29     7   beanDefinitions  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanDefinition;>;
            0   29     8    beanReferences  Ljava/util/List<Lorg/springframework/beans/factory/config/BeanReference;>;
            1   29     9  adviceDefinition  Lorg/springframework/beans/factory/support/RootBeanDefinition;
           17   29    10               cav  Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
           19   29    11          pointcut  Ljava/lang/Object;
           25   27    12       pointcutRef  Lorg/springframework/beans/factory/config/RuntimeBeanReference;
    Signature: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;Ljava/lang/String;ILorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/util/List<Lorg/springframework/beans/factory/config/BeanDefinition;>;Ljava/util/List<Lorg/springframework/beans/factory/config/BeanReference;>;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    MethodParameters:
                  Name  Flags
      adviceElement     
      parserContext     
      aspectName        
      order             
      methodDef         
      aspectFactoryDef  
      beanDefinitions   
      beanReferences    

  private java.lang.Class<?> getAdviceClass(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element adviceElement
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 411
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getDelegate:()Lorg/springframework/beans/factory/xml/BeanDefinitionParserDelegate;
            aload 1 /* adviceElement */
            invokevirtual org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getLocalName:(Lorg/w3c/dom/Node;)Ljava/lang/String;
            astore 3 /* elementName */
        start local 3 // java.lang.String elementName
         1: .line 412
            ldc "before"
            aload 3 /* elementName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 413
            ldc Lorg/springframework/aop/aspectj/AspectJMethodBeforeAdvice;
            areturn
         3: .line 415
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "after"
            aload 3 /* elementName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 416
            ldc Lorg/springframework/aop/aspectj/AspectJAfterAdvice;
            areturn
         5: .line 418
      StackMap locals:
      StackMap stack:
            ldc "after-returning"
            aload 3 /* elementName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 419
            ldc Lorg/springframework/aop/aspectj/AspectJAfterReturningAdvice;
            areturn
         7: .line 421
      StackMap locals:
      StackMap stack:
            ldc "after-throwing"
            aload 3 /* elementName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 422
            ldc Lorg/springframework/aop/aspectj/AspectJAfterThrowingAdvice;
            areturn
         9: .line 424
      StackMap locals:
      StackMap stack:
            ldc "around"
            aload 3 /* elementName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 425
            ldc Lorg/springframework/aop/aspectj/AspectJAroundAdvice;
            areturn
        11: .line 428
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown advice kind ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* elementName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String elementName
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element adviceElement
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   12     1  adviceElement  Lorg/w3c/dom/Element;
            0   12     2  parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            1   12     3    elementName  Ljava/lang/String;
    Signature: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Ljava/lang/Class<*>;
    MethodParameters:
               Name  Flags
      adviceElement  
      parserContext  

  private org.springframework.beans.factory.support.AbstractBeanDefinition parsePointcut(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element pointcutElement
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 437
            aload 1 /* pointcutElement */
            ldc "id"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* id */
        start local 3 // java.lang.String id
         1: .line 438
            aload 1 /* pointcutElement */
            ldc "expression"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* expression */
        start local 4 // java.lang.String expression
         2: .line 440
            aconst_null
            astore 5 /* pointcutDefinition */
        start local 5 // org.springframework.beans.factory.support.AbstractBeanDefinition pointcutDefinition
         3: .line 443
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            new org.springframework.aop.config.PointcutEntry
            dup
            aload 3 /* id */
            invokespecial org.springframework.aop.config.PointcutEntry.<init>:(Ljava/lang/String;)V
            invokevirtual org.springframework.beans.factory.parsing.ParseState.push:(Lorg/springframework/beans/factory/parsing/ParseState$Entry;)V
         4: .line 444
            aload 0 /* this */
            aload 4 /* expression */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.createPointcutDefinition:(Ljava/lang/String;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            astore 5 /* pointcutDefinition */
         5: .line 445
            aload 5 /* pointcutDefinition */
            aload 2 /* parserContext */
            aload 1 /* pointcutElement */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.setSource:(Ljava/lang/Object;)V
         6: .line 447
            aload 3 /* id */
            astore 6 /* pointcutBeanName */
        start local 6 // java.lang.String pointcutBeanName
         7: .line 448
            aload 6 /* pointcutBeanName */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 449
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getRegistry:()Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;
            aload 6 /* pointcutBeanName */
            aload 5 /* pointcutDefinition */
            invokeinterface org.springframework.beans.factory.support.BeanDefinitionRegistry.registerBeanDefinition:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;)V
         9: .line 450
            goto 11
        10: .line 452
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.lang.String java.lang.String org.springframework.beans.factory.support.AbstractBeanDefinition java.lang.String
      StackMap stack:
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
            aload 5 /* pointcutDefinition */
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.registerWithGeneratedName:(Lorg/springframework/beans/factory/config/BeanDefinition;)Ljava/lang/String;
            astore 6 /* pointcutBeanName */
        11: .line 455
      StackMap locals:
      StackMap stack:
            aload 2 /* parserContext */
        12: .line 456
            new org.springframework.aop.config.PointcutComponentDefinition
            dup
            aload 6 /* pointcutBeanName */
            aload 5 /* pointcutDefinition */
            aload 4 /* expression */
            invokespecial org.springframework.aop.config.PointcutComponentDefinition.<init>:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;Ljava/lang/String;)V
        13: .line 455
            invokevirtual org.springframework.beans.factory.xml.ParserContext.registerComponent:(Lorg/springframework/beans/factory/parsing/ComponentDefinition;)V
        end local 6 // java.lang.String pointcutBeanName
        14: .line 457
            goto 18
        15: .line 458
      StackMap locals: org.springframework.aop.config.ConfigBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.lang.String java.lang.String org.springframework.beans.factory.support.AbstractBeanDefinition
      StackMap stack: java.lang.Throwable
            astore 7
        16: .line 459
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        17: .line 460
            aload 7
            athrow
        18: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.pop:()V
        19: .line 462
            aload 5 /* pointcutDefinition */
            areturn
        end local 5 // org.springframework.beans.factory.support.AbstractBeanDefinition pointcutDefinition
        end local 4 // java.lang.String expression
        end local 3 // java.lang.String id
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element pointcutElement
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   20     0                this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   20     1     pointcutElement  Lorg/w3c/dom/Element;
            0   20     2       parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            1   20     3                  id  Ljava/lang/String;
            2   20     4          expression  Ljava/lang/String;
            3   20     5  pointcutDefinition  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            7   14     6    pointcutBeanName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3    15      15  any
    MethodParameters:
                 Name  Flags
      pointcutElement  
      parserContext    

  private java.lang.Object parsePointcutProperty(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext);
    descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // org.w3c.dom.Element element
        start local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
         0: .line 473
            aload 1 /* element */
            ldc "pointcut"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 6
            aload 1 /* element */
            ldc "pointcut-ref"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 6
         1: .line 474
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
         2: .line 475
            ldc "Cannot define both 'pointcut' and 'pointcut-ref' on <advisor> tag."
         3: .line 476
            aload 1 /* element */
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.snapshot:()Lorg/springframework/beans/factory/parsing/ParseState;
         4: .line 474
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.error:(Ljava/lang/String;Ljava/lang/Object;Lorg/springframework/beans/factory/parsing/ParseState;)V
         5: .line 477
            aconst_null
            areturn
         6: .line 479
      StackMap locals:
      StackMap stack:
            aload 1 /* element */
            ldc "pointcut"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 11
         7: .line 481
            aload 1 /* element */
            ldc "pointcut"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* expression */
        start local 3 // java.lang.String expression
         8: .line 482
            aload 0 /* this */
            aload 3 /* expression */
            invokevirtual org.springframework.aop.config.ConfigBeanDefinitionParser.createPointcutDefinition:(Ljava/lang/String;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
            astore 4 /* pointcutDefinition */
        start local 4 // org.springframework.beans.factory.support.AbstractBeanDefinition pointcutDefinition
         9: .line 483
            aload 4 /* pointcutDefinition */
            aload 2 /* parserContext */
            aload 1 /* element */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.springframework.beans.factory.support.AbstractBeanDefinition.setSource:(Ljava/lang/Object;)V
        10: .line 484
            aload 4 /* pointcutDefinition */
            areturn
        end local 4 // org.springframework.beans.factory.support.AbstractBeanDefinition pointcutDefinition
        end local 3 // java.lang.String expression
        11: .line 486
      StackMap locals:
      StackMap stack:
            aload 1 /* element */
            ldc "pointcut-ref"
            invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
            ifeq 19
        12: .line 487
            aload 1 /* element */
            ldc "pointcut-ref"
            invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* pointcutRef */
        start local 3 // java.lang.String pointcutRef
        13: .line 488
            aload 3 /* pointcutRef */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifne 18
        14: .line 489
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
        15: .line 490
            ldc "'pointcut-ref' attribute contains empty value."
            aload 1 /* element */
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.snapshot:()Lorg/springframework/beans/factory/parsing/ParseState;
        16: .line 489
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.error:(Ljava/lang/String;Ljava/lang/Object;Lorg/springframework/beans/factory/parsing/ParseState;)V
        17: .line 491
            aconst_null
            areturn
        18: .line 493
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* pointcutRef */
            areturn
        end local 3 // java.lang.String pointcutRef
        19: .line 496
      StackMap locals:
      StackMap stack:
            aload 2 /* parserContext */
            invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
        20: .line 497
            ldc "Must define one of 'pointcut' or 'pointcut-ref' on <advisor> tag."
        21: .line 498
            aload 1 /* element */
            aload 0 /* this */
            getfield org.springframework.aop.config.ConfigBeanDefinitionParser.parseState:Lorg/springframework/beans/factory/parsing/ParseState;
            invokevirtual org.springframework.beans.factory.parsing.ParseState.snapshot:()Lorg/springframework/beans/factory/parsing/ParseState;
        22: .line 496
            invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.error:(Ljava/lang/String;Ljava/lang/Object;Lorg/springframework/beans/factory/parsing/ParseState;)V
        23: .line 499
            aconst_null
            areturn
        end local 2 // org.springframework.beans.factory.xml.ParserContext parserContext
        end local 1 // org.w3c.dom.Element element
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   24     0                this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0   24     1             element  Lorg/w3c/dom/Element;
            0   24     2       parserContext  Lorg/springframework/beans/factory/xml/ParserContext;
            8   11     3          expression  Ljava/lang/String;
            9   11     4  pointcutDefinition  Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
           13   19     3         pointcutRef  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      element        
      parserContext  

  protected org.springframework.beans.factory.support.AbstractBeanDefinition createPointcutDefinition(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/springframework/beans/factory/support/AbstractBeanDefinition;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
        start local 1 // java.lang.String expression
         0: .line 508
            new org.springframework.beans.factory.support.RootBeanDefinition
            dup
            ldc Lorg/springframework/aop/aspectj/AspectJExpressionPointcut;
            invokespecial org.springframework.beans.factory.support.RootBeanDefinition.<init>:(Ljava/lang/Class;)V
            astore 2 /* beanDefinition */
        start local 2 // org.springframework.beans.factory.support.RootBeanDefinition beanDefinition
         1: .line 509
            aload 2 /* beanDefinition */
            ldc "prototype"
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.setScope:(Ljava/lang/String;)V
         2: .line 510
            aload 2 /* beanDefinition */
            iconst_1
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.setSynthetic:(Z)V
         3: .line 511
            aload 2 /* beanDefinition */
            invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
            ldc "expression"
            aload 1 /* expression */
            invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
            pop
         4: .line 512
            aload 2 /* beanDefinition */
            areturn
        end local 2 // org.springframework.beans.factory.support.RootBeanDefinition beanDefinition
        end local 1 // java.lang.String expression
        end local 0 // org.springframework.aop.config.ConfigBeanDefinitionParser this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/springframework/aop/config/ConfigBeanDefinitionParser;
            0    5     1      expression  Ljava/lang/String;
            1    5     2  beanDefinition  Lorg/springframework/beans/factory/support/RootBeanDefinition;
    MethodParameters:
            Name  Flags
      expression  
}
SourceFile: "ConfigBeanDefinitionParser.java"
InnerClasses:
  public abstract Entry = org.springframework.beans.factory.parsing.ParseState$Entry of org.springframework.beans.factory.parsing.ParseState