class org.springframework.transaction.config.TxAdviceBeanDefinitionParser extends org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.transaction.config.TxAdviceBeanDefinitionParser
super_class: org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
{
private static final java.lang.String METHOD_ELEMENT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "method"
private static final java.lang.String METHOD_NAME_ATTRIBUTE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "name"
private static final java.lang.String ATTRIBUTES_ELEMENT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "attributes"
private static final java.lang.String TIMEOUT_ATTRIBUTE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "timeout"
private static final java.lang.String READ_ONLY_ATTRIBUTE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "read-only"
private static final java.lang.String PROPAGATION_ATTRIBUTE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "propagation"
private static final java.lang.String ISOLATION_ATTRIBUTE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "isolation"
private static final java.lang.String ROLLBACK_FOR_ATTRIBUTE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "rollback-for"
private static final java.lang.String NO_ROLLBACK_FOR_ATTRIBUTE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "no-rollback-for"
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/transaction/config/TxAdviceBeanDefinitionParser;
protected java.lang.Class<?> getBeanClass(org.w3c.dom.Element);
descriptor: (Lorg/w3c/dom/Element;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: ldc Lorg/springframework/transaction/interceptor/TransactionInterceptor;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/transaction/config/TxAdviceBeanDefinitionParser;
0 1 1 element Lorg/w3c/dom/Element;
Signature: (Lorg/w3c/dom/Element;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
element
protected void doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder);
descriptor: (Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ldc "transactionManager"
aload 1
invokestatic org.springframework.transaction.config.TxNamespaceHandler.getTransactionManagerName:(Lorg/w3c/dom/Element;)Ljava/lang/String;
invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.addPropertyReference:(Ljava/lang/String;Ljava/lang/String;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
pop
1: aload 1
ldc "attributes"
invokestatic org.springframework.util.xml.DomUtils.getChildElementsByTagName:(Lorg/w3c/dom/Element;Ljava/lang/String;)Ljava/util/List;
astore 4
start local 4 2: aload 4
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 7
3: aload 2
invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
4: ldc "Element <attributes> is allowed at most once inside element <advice>"
aload 1
5: invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.error:(Ljava/lang/String;Ljava/lang/Object;)V
6: goto 15
7: StackMap locals: java.util.List
StackMap stack:
aload 4
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 12
8: aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.w3c.dom.Element
astore 5
start local 5 9: aload 0
aload 5
aload 2
invokevirtual org.springframework.transaction.config.TxAdviceBeanDefinitionParser.parseAttributeSource:(Lorg/w3c/dom/Element;Lorg/springframework/beans/factory/xml/ParserContext;)Lorg/springframework/beans/factory/support/RootBeanDefinition;
astore 6
start local 6 10: aload 3
ldc "transactionAttributeSource"
aload 6
invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.addPropertyValue:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
pop
end local 6 end local 5 11: goto 15
12: StackMap locals:
StackMap stack:
aload 3
ldc "transactionAttributeSource"
13: new org.springframework.beans.factory.support.RootBeanDefinition
dup
ldc "org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"
invokespecial org.springframework.beans.factory.support.RootBeanDefinition.<init>:(Ljava/lang/String;)V
14: invokevirtual org.springframework.beans.factory.support.BeanDefinitionBuilder.addPropertyValue:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
pop
15: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/springframework/transaction/config/TxAdviceBeanDefinitionParser;
0 16 1 element Lorg/w3c/dom/Element;
0 16 2 parserContext Lorg/springframework/beans/factory/xml/ParserContext;
0 16 3 builder Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
2 16 4 txAttributes Ljava/util/List<Lorg/w3c/dom/Element;>;
9 11 5 attributeSourceElement Lorg/w3c/dom/Element;
10 11 6 attributeSourceDefinition Lorg/springframework/beans/factory/support/RootBeanDefinition;
MethodParameters:
Name Flags
element
parserContext
builder
private org.springframework.beans.factory.support.RootBeanDefinition parseAttributeSource(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/RootBeanDefinition;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "method"
invokestatic org.springframework.util.xml.DomUtils.getChildElementsByTagName:(Lorg/w3c/dom/Element;Ljava/lang/String;)Ljava/util/List;
astore 3
start local 3 1: new org.springframework.beans.factory.support.ManagedMap
dup
aload 3
invokeinterface java.util.List.size:()I
invokespecial org.springframework.beans.factory.support.ManagedMap.<init>:(I)V
2: astore 4
start local 4 3: aload 4
aload 2
aload 1
invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.springframework.beans.factory.support.ManagedMap.setSource:(Ljava/lang/Object;)V
4: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 34
StackMap locals: org.springframework.transaction.config.TxAdviceBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.util.List org.springframework.beans.factory.support.ManagedMap top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.w3c.dom.Element
astore 5
start local 5 6: aload 5
ldc "name"
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 7: new org.springframework.beans.factory.config.TypedStringValue
dup
aload 7
invokespecial org.springframework.beans.factory.config.TypedStringValue.<init>:(Ljava/lang/String;)V
astore 8
start local 8 8: aload 8
aload 2
aload 5
invokevirtual org.springframework.beans.factory.xml.ParserContext.extractSource:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.springframework.beans.factory.config.TypedStringValue.setSource:(Ljava/lang/Object;)V
9: new org.springframework.transaction.interceptor.RuleBasedTransactionAttribute
dup
invokespecial org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.<init>:()V
astore 9
start local 9 10: aload 5
ldc "propagation"
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
astore 10
start local 10 11: aload 5
ldc "isolation"
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
astore 11
start local 11 12: aload 5
ldc "timeout"
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
astore 12
start local 12 13: aload 5
ldc "read-only"
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
astore 13
start local 13 14: aload 10
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifeq 16
15: aload 9
new java.lang.StringBuilder
dup
ldc "PROPAGATION_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setPropagationBehaviorName:(Ljava/lang/String;)V
16: StackMap locals: org.springframework.transaction.config.TxAdviceBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.util.List org.springframework.beans.factory.support.ManagedMap org.w3c.dom.Element java.util.Iterator java.lang.String org.springframework.beans.factory.config.TypedStringValue org.springframework.transaction.interceptor.RuleBasedTransactionAttribute java.lang.String java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 11
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifeq 18
17: aload 9
new java.lang.StringBuilder
dup
ldc "ISOLATION_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setIsolationLevelName:(Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 12
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifeq 23
19: aload 9
aload 12
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setTimeout:(I)V
20: goto 23
21: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
22: aload 2
invokevirtual org.springframework.beans.factory.xml.ParserContext.getReaderContext:()Lorg/springframework/beans/factory/xml/XmlReaderContext;
new java.lang.StringBuilder
dup
ldc "Timeout must be an integer value: ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 12
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;
aload 5
invokevirtual org.springframework.beans.factory.xml.XmlReaderContext.error:(Ljava/lang/String;Ljava/lang/Object;)V
23: StackMap locals:
StackMap stack:
aload 13
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifeq 25
24: aload 9
aload 5
ldc "read-only"
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setReadOnly:(Z)V
25: StackMap locals:
StackMap stack:
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 14
start local 14 26: aload 5
ldc "rollback-for"
invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
ifeq 29
27: aload 5
ldc "rollback-for"
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
astore 15
start local 15 28: aload 0
aload 14
aload 15
invokevirtual org.springframework.transaction.config.TxAdviceBeanDefinitionParser.addRollbackRuleAttributesTo:(Ljava/util/List;Ljava/lang/String;)V
end local 15 29: StackMap locals: java.util.List
StackMap stack:
aload 5
ldc "no-rollback-for"
invokeinterface org.w3c.dom.Element.hasAttribute:(Ljava/lang/String;)Z
ifeq 32
30: aload 5
ldc "no-rollback-for"
invokeinterface org.w3c.dom.Element.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
astore 15
start local 15 31: aload 0
aload 14
aload 15
invokevirtual org.springframework.transaction.config.TxAdviceBeanDefinitionParser.addNoRollbackRuleAttributesTo:(Ljava/util/List;Ljava/lang/String;)V
end local 15 32: StackMap locals:
StackMap stack:
aload 9
aload 14
invokevirtual org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.setRollbackRules:(Ljava/util/List;)V
33: aload 4
aload 8
aload 9
invokevirtual org.springframework.beans.factory.support.ManagedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 5 34: StackMap locals: org.springframework.transaction.config.TxAdviceBeanDefinitionParser org.w3c.dom.Element org.springframework.beans.factory.xml.ParserContext java.util.List org.springframework.beans.factory.support.ManagedMap top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
35: new org.springframework.beans.factory.support.RootBeanDefinition
dup
ldc Lorg/springframework/transaction/interceptor/NameMatchTransactionAttributeSource;
invokespecial org.springframework.beans.factory.support.RootBeanDefinition.<init>:(Ljava/lang/Class;)V
astore 5
start local 5 36: aload 5
aload 2
aload 1
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
37: aload 5
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getPropertyValues:()Lorg/springframework/beans/MutablePropertyValues;
ldc "nameMap"
aload 4
invokevirtual org.springframework.beans.MutablePropertyValues.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
pop
38: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/springframework/transaction/config/TxAdviceBeanDefinitionParser;
0 39 1 attrEle Lorg/w3c/dom/Element;
0 39 2 parserContext Lorg/springframework/beans/factory/xml/ParserContext;
1 39 3 methods Ljava/util/List<Lorg/w3c/dom/Element;>;
3 39 4 transactionAttributeMap Lorg/springframework/beans/factory/support/ManagedMap<Lorg/springframework/beans/factory/config/TypedStringValue;Lorg/springframework/transaction/interceptor/RuleBasedTransactionAttribute;>;
6 34 5 methodEle Lorg/w3c/dom/Element;
7 34 7 name Ljava/lang/String;
8 34 8 nameHolder Lorg/springframework/beans/factory/config/TypedStringValue;
10 34 9 attribute Lorg/springframework/transaction/interceptor/RuleBasedTransactionAttribute;
11 34 10 propagation Ljava/lang/String;
12 34 11 isolation Ljava/lang/String;
13 34 12 timeout Ljava/lang/String;
14 34 13 readOnly Ljava/lang/String;
26 34 14 rollbackRules Ljava/util/List<Lorg/springframework/transaction/interceptor/RollbackRuleAttribute;>;
28 29 15 rollbackForValue Ljava/lang/String;
31 32 15 noRollbackForValue Ljava/lang/String;
36 39 5 attributeSourceDefinition Lorg/springframework/beans/factory/support/RootBeanDefinition;
Exception table:
from to target type
19 20 21 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
attrEle
parserContext
private void addRollbackRuleAttributesTo(java.util.List<org.springframework.transaction.interceptor.RollbackRuleAttribute>, java.lang.String);
descriptor: (Ljava/util/List;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic org.springframework.util.StringUtils.commaDelimitedListToStringArray:(Ljava/lang/String;)[Ljava/lang/String;
astore 3
start local 3 1: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 5
StackMap locals: org.springframework.transaction.config.TxAdviceBeanDefinitionParser java.util.List java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 1
new org.springframework.transaction.interceptor.RollbackRuleAttribute
dup
aload 4
invokestatic org.springframework.util.StringUtils.trimWhitespace:(Ljava/lang/String;)Ljava/lang/String;
invokespecial org.springframework.transaction.interceptor.RollbackRuleAttribute.<init>:(Ljava/lang/String;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 4: iinc 5 1
StackMap locals:
StackMap stack:
5: iload 5
iload 6
if_icmplt 2
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/transaction/config/TxAdviceBeanDefinitionParser;
0 7 1 rollbackRules Ljava/util/List<Lorg/springframework/transaction/interceptor/RollbackRuleAttribute;>;
0 7 2 rollbackForValue Ljava/lang/String;
1 7 3 exceptionTypeNames [Ljava/lang/String;
3 4 4 typeName Ljava/lang/String;
Signature: (Ljava/util/List<Lorg/springframework/transaction/interceptor/RollbackRuleAttribute;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
rollbackRules
rollbackForValue
private void addNoRollbackRuleAttributesTo(java.util.List<org.springframework.transaction.interceptor.RollbackRuleAttribute>, java.lang.String);
descriptor: (Ljava/util/List;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic org.springframework.util.StringUtils.commaDelimitedListToStringArray:(Ljava/lang/String;)[Ljava/lang/String;
astore 3
start local 3 1: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 5
StackMap locals: org.springframework.transaction.config.TxAdviceBeanDefinitionParser java.util.List java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 1
new org.springframework.transaction.interceptor.NoRollbackRuleAttribute
dup
aload 4
invokestatic org.springframework.util.StringUtils.trimWhitespace:(Ljava/lang/String;)Ljava/lang/String;
invokespecial org.springframework.transaction.interceptor.NoRollbackRuleAttribute.<init>:(Ljava/lang/String;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 4: iinc 5 1
StackMap locals:
StackMap stack:
5: iload 5
iload 6
if_icmplt 2
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/transaction/config/TxAdviceBeanDefinitionParser;
0 7 1 rollbackRules Ljava/util/List<Lorg/springframework/transaction/interceptor/RollbackRuleAttribute;>;
0 7 2 noRollbackForValue Ljava/lang/String;
1 7 3 exceptionTypeNames [Ljava/lang/String;
3 4 4 typeName Ljava/lang/String;
Signature: (Ljava/util/List<Lorg/springframework/transaction/interceptor/RollbackRuleAttribute;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
rollbackRules
noRollbackForValue
}
SourceFile: "TxAdviceBeanDefinitionParser.java"