class org.springframework.beans.factory.support.ConstructorResolver
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.beans.factory.support.ConstructorResolver
super_class: java.lang.Object
{
private static final java.lang.Object[] EMPTY_ARGS;
descriptor: [Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Object autowiredArgumentMarker;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.springframework.core.NamedThreadLocal<org.springframework.beans.factory.InjectionPoint> currentInjectionPoint;
descriptor: Lorg/springframework/core/NamedThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/springframework/core/NamedThreadLocal<Lorg/springframework/beans/factory/InjectionPoint;>;
private final org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory beanFactory;
descriptor: Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: iconst_0
anewarray java.lang.Object
putstatic org.springframework.beans.factory.support.ConstructorResolver.EMPTY_ARGS:[Ljava/lang/Object;
1: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic org.springframework.beans.factory.support.ConstructorResolver.autowiredArgumentMarker:Ljava/lang/Object;
2: new org.springframework.core.NamedThreadLocal
dup
ldc "Current injection point"
invokespecial org.springframework.core.NamedThreadLocal.<init>:(Ljava/lang/String;)V
3: putstatic org.springframework.beans.factory.support.ConstructorResolver.currentInjectionPoint:Lorg/springframework/core/NamedThreadLocal;
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory);
descriptor: (Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
2: aload 0
aload 1
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getLogger:()Lorg/apache/commons/logging/Log;
putfield org.springframework.beans.factory.support.ConstructorResolver.logger:Lorg/apache/commons/logging/Log;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 4 1 beanFactory Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
MethodParameters:
Name Flags
beanFactory
public org.springframework.beans.BeanWrapper autowireConstructor(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.reflect.Constructor<?>[], []);
descriptor: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;[Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Lorg/springframework/beans/BeanWrapper;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=25, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new org.springframework.beans.BeanWrapperImpl
dup
invokespecial org.springframework.beans.BeanWrapperImpl.<init>:()V
astore 5
start local 5 1: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 5
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initBeanWrapper:(Lorg/springframework/beans/BeanWrapper;)V
2: aconst_null
astore 6
start local 6 3: aconst_null
astore 7
start local 7 4: aconst_null
astore 8
start local 8 5: aload 4
ifnull 8
6: aload 4
astore 8
7: goto 21
8: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[]
StackMap stack:
aconst_null
astore 9
start local 9 9: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.constructorArgumentLock:Ljava/lang/Object;
dup
astore 10
monitorenter
10: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.resolvedConstructorOrFactoryMethod:Ljava/lang/reflect/Executable;
checkcast java.lang.reflect.Constructor
astore 6
11: aload 6
ifnull 15
aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.constructorArgumentsResolved:Z
ifeq 15
12: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.resolvedConstructorArguments:[Ljava/lang/Object;
astore 8
13: aload 8
ifnonnull 15
14: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.preparedConstructorArguments:[Ljava/lang/Object;
astore 9
15: StackMap locals: java.lang.Object[] java.lang.Object
StackMap stack:
aload 10
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 10
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
aload 9
ifnull 21
20: aload 0
aload 1
aload 2
aload 5
aload 6
aload 9
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.resolvePreparedArguments:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/BeanWrapper;Ljava/lang/reflect/Executable;[Ljava/lang/Object;)[Ljava/lang/Object;
astore 8
end local 9 21: StackMap locals:
StackMap stack:
aload 6
ifnull 22
aload 8
ifnonnull 133
22: StackMap locals:
StackMap stack:
aload 3
astore 9
start local 9 23: aload 9
ifnonnull 37
24: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getBeanClass:()Ljava/lang/Class;
astore 10
start local 10 25: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isNonPublicAccessAllowed:()Z
ifeq 27
26: aload 10
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
goto 28
StackMap locals: java.lang.reflect.Constructor[] java.lang.Class
StackMap stack:
27: aload 10
invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
28: StackMap locals:
StackMap stack: java.lang.reflect.Constructor[]
astore 9
29: goto 37
30: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
start local 11 31: new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
32: new java.lang.StringBuilder
dup
ldc "Resolution of declared constructors on bean Class ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc "] from ClassLoader ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] failed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
35: aload 11
36: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 11 end local 10 37: StackMap locals:
StackMap stack:
aload 9
arraylength
iconst_1
if_icmpne 50
aload 4
ifnonnull 50
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.hasConstructorArgumentValues:()Z
ifne 50
38: aload 9
iconst_0
aaload
astore 10
start local 10 39: aload 10
invokevirtual java.lang.reflect.Constructor.getParameterCount:()I
ifne 50
40: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.constructorArgumentLock:Ljava/lang/Object;
dup
astore 11
monitorenter
41: aload 2
aload 10
putfield org.springframework.beans.factory.support.RootBeanDefinition.resolvedConstructorOrFactoryMethod:Ljava/lang/reflect/Executable;
42: aload 2
iconst_1
putfield org.springframework.beans.factory.support.RootBeanDefinition.constructorArgumentsResolved:Z
43: aload 2
getstatic org.springframework.beans.factory.support.ConstructorResolver.EMPTY_ARGS:[Ljava/lang/Object;
putfield org.springframework.beans.factory.support.RootBeanDefinition.resolvedConstructorArguments:[Ljava/lang/Object;
44: aload 11
monitorexit
45: goto 48
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] java.lang.reflect.Constructor java.lang.Object
StackMap stack: java.lang.Throwable
46: aload 11
monitorexit
47: athrow
48: StackMap locals:
StackMap stack:
aload 5
aload 0
aload 1
aload 2
aload 10
getstatic org.springframework.beans.factory.support.ConstructorResolver.EMPTY_ARGS:[Ljava/lang/Object;
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.instantiate:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.springframework.beans.BeanWrapperImpl.setBeanInstance:(Ljava/lang/Object;)V
49: aload 5
areturn
end local 10 50: StackMap locals:
StackMap stack:
aload 3
ifnonnull 53
51: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResolvedAutowireMode:()I
iconst_3
if_icmpeq 53
52: iconst_0
goto 54
StackMap locals:
StackMap stack:
53: iconst_1
StackMap locals:
StackMap stack: int
54: istore 10
start local 10 55: aconst_null
astore 11
start local 11 56: aload 4
ifnull 59
57: aload 4
arraylength
istore 12
start local 12 58: goto 62
end local 12 59: StackMap locals: int org.springframework.beans.factory.config.ConstructorArgumentValues
StackMap stack:
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getConstructorArgumentValues:()Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
astore 13
start local 13 60: new org.springframework.beans.factory.config.ConstructorArgumentValues
dup
invokespecial org.springframework.beans.factory.config.ConstructorArgumentValues.<init>:()V
astore 11
61: aload 0
aload 1
aload 2
aload 5
aload 13
aload 11
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/BeanWrapper;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;)I
istore 12
end local 13 start local 12 62: StackMap locals: int
StackMap stack:
aload 9
invokestatic org.springframework.beans.factory.support.AutowireUtils.sortConstructors:([Ljava/lang/reflect/Constructor;)V
63: ldc 2147483647
istore 13
start local 13 64: aconst_null
astore 14
start local 14 65: aconst_null
astore 15
start local 15 66: aload 9
dup
astore 19
arraylength
istore 18
iconst_0
istore 17
goto 112
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque top int int java.lang.reflect.Constructor[]
StackMap stack:
67: aload 19
iload 17
aaload
astore 16
start local 16 68: aload 16
invokevirtual java.lang.reflect.Constructor.getParameterCount:()I
istore 20
start local 20 69: aload 6
ifnull 71
aload 8
ifnull 71
aload 8
arraylength
iload 20
if_icmple 71
70: goto 113
71: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] int
StackMap stack:
iload 20
iload 12
if_icmpge 73
72: goto 111
73: StackMap locals:
StackMap stack:
aload 16
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
astore 22
start local 22 74: aload 11
ifnull 92
75: aload 16
iload 20
invokestatic org.springframework.beans.factory.support.ConstructorResolver$ConstructorPropertiesChecker.evaluate:(Ljava/lang/reflect/Constructor;I)[Ljava/lang/String;
astore 23
start local 23 76: aload 23
ifnonnull 80
77: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getParameterNameDiscoverer:()Lorg/springframework/core/ParameterNameDiscoverer;
astore 24
start local 24 78: aload 24
ifnull 80
79: aload 24
aload 16
invokeinterface org.springframework.core.ParameterNameDiscoverer.getParameterNames:(Ljava/lang/reflect/Constructor;)[Ljava/lang/String;
astore 23
end local 24 80: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] int top java.lang.Class[] java.lang.String[]
StackMap stack:
aload 0
aload 1
aload 2
aload 11
aload 5
aload 22
aload 23
81: aload 0
aload 16
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.getUserDeclaredConstructor:(Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor;
iload 10
aload 9
arraylength
iconst_1
if_icmpne 82
iconst_1
goto 83
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] int top java.lang.Class[] java.lang.String[]
StackMap stack: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapperImpl java.lang.Class[] java.lang.String[] java.lang.reflect.Constructor int
82: iconst_0
83: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] int top java.lang.Class[] java.lang.String[]
StackMap stack: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapperImpl java.lang.Class[] java.lang.String[] java.lang.reflect.Constructor int int
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;Lorg/springframework/beans/BeanWrapper;[Ljava/lang/Class;[Ljava/lang/String;Ljava/lang/reflect/Executable;ZZ)Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
astore 21
end local 23 start local 21 84: goto 95
end local 21 85: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] int top java.lang.Class[]
StackMap stack: org.springframework.beans.factory.UnsatisfiedDependencyException
astore 23
start local 23 86: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 88
87: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Ignoring constructor ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 16
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] of bean '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "': "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 23
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
88: StackMap locals: org.springframework.beans.factory.UnsatisfiedDependencyException
StackMap stack:
aload 15
ifnonnull 90
89: new java.util.ArrayDeque
dup
iconst_1
invokespecial java.util.ArrayDeque.<init>:(I)V
astore 15
90: StackMap locals:
StackMap stack:
aload 15
aload 23
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
91: goto 111
end local 23 92: StackMap locals:
StackMap stack:
iload 20
aload 4
arraylength
if_icmpeq 94
93: goto 111
94: StackMap locals:
StackMap stack:
new org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder
dup
aload 4
invokespecial org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.<init>:([Ljava/lang/Object;)V
astore 21
start local 21 95: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] int org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Class[]
StackMap stack:
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isLenientConstructorResolution:()Z
ifeq 97
96: aload 21
aload 22
invokevirtual org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.getTypeDifferenceWeight:([Ljava/lang/Class;)I
goto 98
StackMap locals:
StackMap stack:
97: aload 21
aload 22
invokevirtual org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.getAssignabilityWeight:([Ljava/lang/Class;)I
98: StackMap locals:
StackMap stack: int
istore 23
start local 23 99: iload 23
iload 13
if_icmpge 106
100: aload 16
astore 6
101: aload 21
astore 7
102: aload 21
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.arguments:[Ljava/lang/Object;
astore 8
103: iload 23
istore 13
104: aconst_null
astore 14
105: goto 111
106: StackMap locals: int
StackMap stack:
aload 6
ifnull 111
iload 23
iload 13
if_icmpne 111
107: aload 14
ifnonnull 110
108: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 14
109: aload 14
aload 6
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
110: StackMap locals:
StackMap stack:
aload 14
aload 16
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 23 end local 22 end local 21 end local 20 end local 16 111: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque top int int java.lang.reflect.Constructor[]
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
112: iload 17
iload 18
if_icmplt 67
113: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque
StackMap stack:
aload 6
ifnonnull 124
114: aload 15
ifnull 121
115: aload 15
invokeinterface java.util.Deque.removeLast:()Ljava/lang/Object;
checkcast org.springframework.beans.factory.UnsatisfiedDependencyException
astore 16
start local 16 116: aload 15
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 18
goto 119
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque org.springframework.beans.factory.UnsatisfiedDependencyException top java.util.Iterator
StackMap stack:
117: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Exception
astore 17
start local 17 118: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 17
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.onSuppressedException:(Ljava/lang/Exception;)V
end local 17 119: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 117
120: aload 16
athrow
end local 16 121: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.lang.reflect.Constructor[] int org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set java.util.Deque
StackMap stack:
new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
122: ldc "Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)"
123: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
124: StackMap locals:
StackMap stack:
aload 14
ifnull 131
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isLenientConstructorResolution:()Z
ifne 131
125: new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
126: new java.lang.StringBuilder
dup
ldc "Ambiguous constructor matches found in bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
127: ldc "(hint: specify index/type/name arguments for simple parameters to avoid type ambiguities): "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
128: aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
129: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
130: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
131: StackMap locals:
StackMap stack:
aload 4
ifnonnull 133
aload 7
ifnull 133
132: aload 7
aload 2
aload 6
invokevirtual org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.storeCache:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/reflect/Executable;)V
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 133: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor[] java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.reflect.Constructor org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[]
StackMap stack:
aload 8
ifnull 134
iconst_1
goto 135
StackMap locals:
StackMap stack:
134: iconst_0
StackMap locals:
StackMap stack: int
135: ldc "Unresolved constructor arguments"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
136: aload 5
aload 0
aload 1
aload 2
aload 6
aload 8
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.instantiate:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.springframework.beans.BeanWrapperImpl.setBeanInstance:(Ljava/lang/Object;)V
137: aload 5
areturn
end local 8 end local 7 end local 6 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 138 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 138 1 beanName Ljava/lang/String;
0 138 2 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 138 3 chosenCtors [Ljava/lang/reflect/Constructor;
0 138 4 explicitArgs [Ljava/lang/Object;
1 138 5 bw Lorg/springframework/beans/BeanWrapperImpl;
3 138 6 constructorToUse Ljava/lang/reflect/Constructor<*>;
4 138 7 argsHolderToUse Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
5 138 8 argsToUse [Ljava/lang/Object;
9 21 9 argsToResolve [Ljava/lang/Object;
23 133 9 candidates [Ljava/lang/reflect/Constructor;
25 37 10 beanClass Ljava/lang/Class<*>;
31 37 11 ex Ljava/lang/Throwable;
39 50 10 uniqueCandidate Ljava/lang/reflect/Constructor<*>;
55 133 10 autowiring Z
56 133 11 resolvedValues Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
58 59 12 minNrOfArgs I
62 133 12 minNrOfArgs I
60 62 13 cargs Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
64 133 13 minTypeDiffWeight I
65 133 14 ambiguousConstructors Ljava/util/Set<Ljava/lang/reflect/Constructor<*>;>;
66 133 15 causes Ljava/util/Deque<Lorg/springframework/beans/factory/UnsatisfiedDependencyException;>;
68 111 16 candidate Ljava/lang/reflect/Constructor<*>;
69 111 20 parameterCount I
84 85 21 argsHolder Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
95 111 21 argsHolder Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
74 111 22 paramTypes [Ljava/lang/Class;
76 84 23 paramNames [Ljava/lang/String;
78 80 24 pnd Lorg/springframework/core/ParameterNameDiscoverer;
86 92 23 ex Lorg/springframework/beans/factory/UnsatisfiedDependencyException;
99 111 23 typeDiffWeight I
116 121 16 ex Lorg/springframework/beans/factory/UnsatisfiedDependencyException;
118 119 17 cause Ljava/lang/Exception;
Exception table:
from to target type
10 16 17 any
17 18 17 any
25 29 30 Class java.lang.Throwable
41 45 46 any
46 47 46 any
75 84 85 Class org.springframework.beans.factory.UnsatisfiedDependencyException
Signature: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;[Ljava/lang/reflect/Constructor<*>;[Ljava/lang/Object;)Lorg/springframework/beans/BeanWrapper;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
beanName
mbd
chosenCtors
explicitArgs
private instantiate(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.reflect.Constructor<?>, []);
descriptor: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getInstantiationStrategy:()Lorg/springframework/beans/factory/support/InstantiationStrategy;
astore 5
start local 5 1: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 6
2: aload 0
aload 5
aload 2
aload 1
aload 3
aload 4
invokedynamic run(Lorg/springframework/beans/factory/support/ConstructorResolver;Lorg/springframework/beans/factory/support/InstantiationStrategy;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/springframework/beans/factory/support/ConstructorResolver.lambda$0(Lorg/springframework/beans/factory/support/InstantiationStrategy;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object; (7)
()Ljava/lang/Object;
3: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getAccessControlContext:()Ljava/security/AccessControlContext;
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
5: areturn
6: StackMap locals: org.springframework.beans.factory.support.InstantiationStrategy
StackMap stack:
aload 5
aload 2
aload 1
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 3
aload 4
invokeinterface org.springframework.beans.factory.support.InstantiationStrategy.instantiate:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
7: areturn
end local 5 8: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.reflect.Constructor java.lang.Object[]
StackMap stack: java.lang.Throwable
astore 5
start local 5 9: new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
10: ldc "Bean instantiation via constructor failed"
aload 5
11: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 12 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 12 1 beanName Ljava/lang/String;
0 12 2 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 12 3 constructorToUse Ljava/lang/reflect/Constructor<*>;
0 12 4 argsToUse [Ljava/lang/Object;
1 8 5 strategy Lorg/springframework/beans/factory/support/InstantiationStrategy;
9 12 5 ex Ljava/lang/Throwable;
Exception table:
from to target type
0 5 8 Class java.lang.Throwable
6 7 8 Class java.lang.Throwable
Signature: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/reflect/Constructor<*>;[Ljava/lang/Object;)Ljava/lang/Object;
MethodParameters:
Name Flags
beanName
mbd
constructorToUse
argsToUse
public void resolveFactoryMethodIfPossible(org.springframework.beans.factory.support.RootBeanDefinition);
descriptor: (Lorg/springframework/beans/factory/support/RootBeanDefinition;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getFactoryBeanName:()Ljava/lang/String;
ifnull 4
1: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 1
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getFactoryBeanName:()Ljava/lang/String;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getType:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 6
end local 3 end local 2 4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getBeanClass:()Ljava/lang/Class;
astore 2
start local 2 5: iconst_1
istore 3
start local 3 6: StackMap locals: java.lang.Class int
StackMap stack:
aload 2
ifnull 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: ldc "Unresolvable factory class"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
9: aload 2
invokestatic org.springframework.util.ClassUtils.getUserClass:(Ljava/lang/Class;)Ljava/lang/Class;
astore 2
10: aload 0
aload 2
aload 1
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.getCandidateMethods:(Ljava/lang/Class;Lorg/springframework/beans/factory/support/RootBeanDefinition;)[Ljava/lang/reflect/Method;
astore 4
start local 4 11: aconst_null
astore 5
start local 5 12: aload 4
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 22
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver org.springframework.beans.factory.support.RootBeanDefinition java.lang.Class int java.lang.reflect.Method[] java.lang.reflect.Method top int int java.lang.reflect.Method[]
StackMap stack:
13: aload 9
iload 7
aaload
astore 6
start local 6 14: aload 6
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
iload 3
if_icmpne 21
aload 1
aload 6
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isFactoryMethod:(Ljava/lang/reflect/Method;)Z
ifeq 21
15: aload 5
ifnonnull 18
16: aload 6
astore 5
17: goto 21
18: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver org.springframework.beans.factory.support.RootBeanDefinition java.lang.Class int java.lang.reflect.Method[] java.lang.reflect.Method java.lang.reflect.Method int int java.lang.reflect.Method[]
StackMap stack:
aload 0
aload 5
aload 6
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.isParamMismatch:(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)Z
ifeq 21
19: aconst_null
astore 5
20: goto 23
end local 6 21: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver org.springframework.beans.factory.support.RootBeanDefinition java.lang.Class int java.lang.reflect.Method[] java.lang.reflect.Method top int int java.lang.reflect.Method[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
22: iload 7
iload 8
if_icmplt 13
23: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver org.springframework.beans.factory.support.RootBeanDefinition java.lang.Class int java.lang.reflect.Method[] java.lang.reflect.Method
StackMap stack:
aload 1
aload 5
putfield org.springframework.beans.factory.support.RootBeanDefinition.factoryMethodToIntrospect:Ljava/lang/reflect/Method;
24: return
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 25 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 25 1 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
2 4 2 factoryClass Ljava/lang/Class<*>;
5 25 2 factoryClass Ljava/lang/Class<*>;
3 4 3 isStatic Z
6 25 3 isStatic Z
11 25 4 candidates [Ljava/lang/reflect/Method;
12 25 5 uniqueCandidate Ljava/lang/reflect/Method;
14 21 6 candidate Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
mbd
private boolean isParamMismatch(java.lang.reflect.Method, java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.reflect.Method.getParameterCount:()I
istore 3
start local 3 1: aload 2
invokevirtual java.lang.reflect.Method.getParameterCount:()I
istore 4
start local 4 2: iload 3
iload 4
if_icmpne 5
3: aload 1
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
aload 2
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
ifeq 5
4: iconst_0
ireturn
StackMap locals: int int
StackMap stack:
5: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 6 1 uniqueCandidate Ljava/lang/reflect/Method;
0 6 2 candidate Ljava/lang/reflect/Method;
1 6 3 uniqueCandidateParameterCount I
2 6 4 candidateParameterCount I
MethodParameters:
Name Flags
uniqueCandidate
candidate
private java.lang.reflect.Method[] getCandidateMethods(java.lang.Class<?>, org.springframework.beans.factory.support.RootBeanDefinition);
descriptor: (Ljava/lang/Class;Lorg/springframework/beans/factory/support/RootBeanDefinition;)[Ljava/lang/reflect/Method;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 2
1: aload 2
aload 1
invokedynamic run(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/springframework/beans/factory/support/ConstructorResolver.lambda$1(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)[Ljava/lang/reflect/Method; (6)
()[Ljava/lang/reflect/Method;
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.reflect.Method[]
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isNonPublicAccessAllowed:()Z
ifeq 4
3: aload 1
invokestatic org.springframework.util.ReflectionUtils.getAllDeclaredMethods:(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
goto 5
StackMap locals:
StackMap stack:
4: aload 1
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
5: StackMap locals:
StackMap stack: java.lang.reflect.Method[]
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 6 1 factoryClass Ljava/lang/Class<*>;
0 6 2 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
Signature: (Ljava/lang/Class<*>;Lorg/springframework/beans/factory/support/RootBeanDefinition;)[Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
factoryClass
mbd
public org.springframework.beans.BeanWrapper instantiateUsingFactoryMethod(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[]);
descriptor: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;[Ljava/lang/Object;)Lorg/springframework/beans/BeanWrapper;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=26, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.springframework.beans.BeanWrapperImpl
dup
invokespecial org.springframework.beans.BeanWrapperImpl.<init>:()V
astore 4
start local 4 1: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 4
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initBeanWrapper:(Lorg/springframework/beans/BeanWrapper;)V
2: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getFactoryBeanName:()Ljava/lang/String;
astore 8
start local 8 3: aload 8
ifnull 15
4: aload 8
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
5: new org.springframework.beans.factory.BeanDefinitionStoreException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
6: ldc "factory-bean reference points back to the same bean definition"
7: invokespecial org.springframework.beans.factory.BeanDefinitionStoreException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
8: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl top top top java.lang.String
StackMap stack:
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 8
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getBean:(Ljava/lang/String;)Ljava/lang/Object;
astore 5
start local 5 9: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isSingleton:()Z
ifeq 11
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 1
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.containsSingleton:(Ljava/lang/String;)Z
ifeq 11
10: new org.springframework.beans.factory.support.ImplicitlyAppearedSingletonException
dup
invokespecial org.springframework.beans.factory.support.ImplicitlyAppearedSingletonException.<init>:()V
athrow
11: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object top top java.lang.String
StackMap stack:
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 8
aload 1
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.registerDependentBean:(Ljava/lang/String;Ljava/lang/String;)V
12: aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 6
start local 6 13: iconst_0
istore 7
start local 7 14: goto 22
end local 7 end local 6 end local 5 15: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl top top top java.lang.String
StackMap stack:
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.hasBeanClass:()Z
ifne 19
16: new org.springframework.beans.factory.BeanDefinitionStoreException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
17: ldc "bean definition declares neither a bean class nor a factory-bean reference"
18: invokespecial org.springframework.beans.factory.BeanDefinitionStoreException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 20: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getBeanClass:()Ljava/lang/Class;
astore 6
start local 6 21: iconst_1
istore 7
start local 7 22: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String
StackMap stack:
aconst_null
astore 9
start local 9 23: aconst_null
astore 10
start local 10 24: aconst_null
astore 11
start local 11 25: aload 3
ifnull 28
26: aload 3
astore 11
27: goto 41
28: StackMap locals: java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[]
StackMap stack:
aconst_null
astore 12
start local 12 29: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.constructorArgumentLock:Ljava/lang/Object;
dup
astore 13
monitorenter
30: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.resolvedConstructorOrFactoryMethod:Ljava/lang/reflect/Executable;
checkcast java.lang.reflect.Method
astore 9
31: aload 9
ifnull 35
aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.constructorArgumentsResolved:Z
ifeq 35
32: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.resolvedConstructorArguments:[Ljava/lang/Object;
astore 11
33: aload 11
ifnonnull 35
34: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.preparedConstructorArguments:[Ljava/lang/Object;
astore 12
35: StackMap locals: java.lang.Object[] java.lang.Object
StackMap stack:
aload 13
monitorexit
36: goto 39
StackMap locals:
StackMap stack: java.lang.Throwable
37: aload 13
monitorexit
38: athrow
39: StackMap locals:
StackMap stack:
aload 12
ifnull 41
40: aload 0
aload 1
aload 2
aload 4
aload 9
aload 12
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.resolvePreparedArguments:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/BeanWrapper;Ljava/lang/reflect/Executable;[Ljava/lang/Object;)[Ljava/lang/Object;
astore 11
end local 12 41: StackMap locals:
StackMap stack:
aload 9
ifnull 42
aload 11
ifnonnull 200
42: StackMap locals:
StackMap stack:
aload 6
invokestatic org.springframework.util.ClassUtils.getUserClass:(Ljava/lang/Class;)Ljava/lang/Class;
astore 6
43: aconst_null
astore 12
start local 12 44: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.isFactoryMethodUnique:Z
ifeq 49
45: aload 9
ifnonnull 47
46: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResolvedFactoryMethod:()Ljava/lang/reflect/Method;
astore 9
47: StackMap locals: java.util.List
StackMap stack:
aload 9
ifnull 49
48: aload 9
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
astore 12
49: StackMap locals:
StackMap stack:
aload 12
ifnonnull 58
50: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 12
51: aload 0
aload 6
aload 2
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.getCandidateMethods:(Ljava/lang/Class;Lorg/springframework/beans/factory/support/RootBeanDefinition;)[Ljava/lang/reflect/Method;
astore 13
start local 13 52: aload 13
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 57
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List java.lang.reflect.Method[] top int int java.lang.reflect.Method[]
StackMap stack:
53: aload 17
iload 15
aaload
astore 14
start local 14 54: aload 14
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
iload 7
if_icmpne 56
aload 2
aload 14
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isFactoryMethod:(Ljava/lang/reflect/Method;)Z
ifeq 56
55: aload 12
aload 14
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 14 56: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
57: iload 15
iload 16
if_icmplt 53
end local 13 58: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List
StackMap stack:
aload 12
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 72
aload 3
ifnonnull 72
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.hasConstructorArgumentValues:()Z
ifne 72
59: aload 12
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 13
start local 13 60: aload 13
invokevirtual java.lang.reflect.Method.getParameterCount:()I
ifne 72
61: aload 2
aload 13
putfield org.springframework.beans.factory.support.RootBeanDefinition.factoryMethodToIntrospect:Ljava/lang/reflect/Method;
62: aload 2
getfield org.springframework.beans.factory.support.RootBeanDefinition.constructorArgumentLock:Ljava/lang/Object;
dup
astore 14
monitorenter
63: aload 2
aload 13
putfield org.springframework.beans.factory.support.RootBeanDefinition.resolvedConstructorOrFactoryMethod:Ljava/lang/reflect/Executable;
64: aload 2
iconst_1
putfield org.springframework.beans.factory.support.RootBeanDefinition.constructorArgumentsResolved:Z
65: aload 2
getstatic org.springframework.beans.factory.support.ConstructorResolver.EMPTY_ARGS:[Ljava/lang/Object;
putfield org.springframework.beans.factory.support.RootBeanDefinition.resolvedConstructorArguments:[Ljava/lang/Object;
66: aload 14
monitorexit
67: goto 70
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List java.lang.reflect.Method java.lang.Object
StackMap stack: java.lang.Throwable
68: aload 14
monitorexit
69: athrow
70: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
aload 2
aload 5
aload 13
getstatic org.springframework.beans.factory.support.ConstructorResolver.EMPTY_ARGS:[Ljava/lang/Object;
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.instantiate:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.springframework.beans.BeanWrapperImpl.setBeanInstance:(Ljava/lang/Object;)V
71: aload 4
areturn
end local 13 72: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 74
73: aload 12
getstatic org.springframework.beans.factory.support.AutowireUtils.EXECUTABLE_COMPARATOR:Ljava/util/Comparator;
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
74: StackMap locals:
StackMap stack:
aconst_null
astore 13
start local 13 75: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResolvedAutowireMode:()I
iconst_3
if_icmpne 76
iconst_1
goto 77
StackMap locals: org.springframework.beans.factory.config.ConstructorArgumentValues
StackMap stack:
76: iconst_0
StackMap locals:
StackMap stack: int
77: istore 14
start local 14 78: ldc 2147483647
istore 15
start local 15 79: aconst_null
astore 16
start local 16 80: aload 3
ifnull 83
81: aload 3
arraylength
istore 17
start local 17 82: goto 89
end local 17 83: StackMap locals: int int java.util.Set
StackMap stack:
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.hasConstructorArgumentValues:()Z
ifeq 88
84: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getConstructorArgumentValues:()Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
astore 18
start local 18 85: new org.springframework.beans.factory.config.ConstructorArgumentValues
dup
invokespecial org.springframework.beans.factory.config.ConstructorArgumentValues.<init>:()V
astore 13
86: aload 0
aload 1
aload 2
aload 4
aload 18
aload 13
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/BeanWrapper;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;)I
istore 17
end local 18 start local 17 87: goto 89
end local 17 88: StackMap locals:
StackMap stack:
iconst_0
istore 17
start local 17 89: StackMap locals: int
StackMap stack:
aconst_null
astore 18
start local 18 90: aload 12
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 20
goto 135
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque top java.util.Iterator
StackMap stack:
91: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 19
start local 19 92: aload 19
invokevirtual java.lang.reflect.Method.getParameterCount:()I
istore 21
start local 21 93: iload 21
iload 17
if_icmplt 135
94: aload 19
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
astore 23
start local 23 95: aload 3
ifnull 100
96: aload 23
arraylength
aload 3
arraylength
if_icmpeq 98
97: goto 135
98: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.lang.reflect.Method java.util.Iterator int top java.lang.Class[]
StackMap stack:
new org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder
dup
aload 3
invokespecial org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.<init>:([Ljava/lang/Object;)V
astore 22
start local 22 99: goto 116
end local 22 100: StackMap locals:
StackMap stack:
aconst_null
astore 24
start local 24 101: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getParameterNameDiscoverer:()Lorg/springframework/core/ParameterNameDiscoverer;
astore 25
start local 25 102: aload 25
ifnull 104
103: aload 25
aload 19
invokeinterface org.springframework.core.ParameterNameDiscoverer.getParameterNames:(Ljava/lang/reflect/Method;)[Ljava/lang/String;
astore 24
104: StackMap locals: java.lang.String[] org.springframework.core.ParameterNameDiscoverer
StackMap stack:
aload 0
aload 1
aload 2
aload 13
aload 4
105: aload 23
aload 24
aload 19
iload 14
aload 12
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 106
iconst_1
goto 107
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.lang.reflect.Method java.util.Iterator int top java.lang.Class[] java.lang.String[] org.springframework.core.ParameterNameDiscoverer
StackMap stack: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapperImpl java.lang.Class[] java.lang.String[] java.lang.reflect.Method int
106: iconst_0
107: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.lang.reflect.Method java.util.Iterator int top java.lang.Class[] java.lang.String[] org.springframework.core.ParameterNameDiscoverer
StackMap stack: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapperImpl java.lang.Class[] java.lang.String[] java.lang.reflect.Method int int
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;Lorg/springframework/beans/BeanWrapper;[Ljava/lang/Class;[Ljava/lang/String;Ljava/lang/reflect/Executable;ZZ)Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
astore 22
end local 25 end local 24 start local 22 108: goto 116
end local 22 109: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.lang.reflect.Method java.util.Iterator int top java.lang.Class[]
StackMap stack: org.springframework.beans.factory.UnsatisfiedDependencyException
astore 24
start local 24 110: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 112
111: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Ignoring factory method ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 19
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] of bean '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "': "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 24
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
112: StackMap locals: org.springframework.beans.factory.UnsatisfiedDependencyException
StackMap stack:
aload 18
ifnonnull 114
113: new java.util.ArrayDeque
dup
iconst_1
invokespecial java.util.ArrayDeque.<init>:(I)V
astore 18
114: StackMap locals:
StackMap stack:
aload 18
aload 24
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
115: goto 135
end local 24 start local 22 116: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.lang.reflect.Method java.util.Iterator int org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Class[]
StackMap stack:
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isLenientConstructorResolution:()Z
ifeq 118
117: aload 22
aload 23
invokevirtual org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.getTypeDifferenceWeight:([Ljava/lang/Class;)I
goto 119
StackMap locals:
StackMap stack:
118: aload 22
aload 23
invokevirtual org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.getAssignabilityWeight:([Ljava/lang/Class;)I
119: StackMap locals:
StackMap stack: int
istore 24
start local 24 120: iload 24
iload 15
if_icmpge 127
121: aload 19
astore 9
122: aload 22
astore 10
123: aload 22
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.arguments:[Ljava/lang/Object;
astore 11
124: iload 24
istore 15
125: aconst_null
astore 16
126: goto 135
127: StackMap locals: int
StackMap stack:
aload 9
ifnull 135
iload 24
iload 15
if_icmpne 135
128: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isLenientConstructorResolution:()Z
ifne 135
129: aload 23
arraylength
aload 9
invokevirtual java.lang.reflect.Method.getParameterCount:()I
if_icmpne 135
130: aload 23
aload 9
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
ifne 135
131: aload 16
ifnonnull 134
132: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 16
133: aload 16
aload 9
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
134: StackMap locals:
StackMap stack:
aload 16
aload 19
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 24 end local 23 end local 22 end local 21 end local 19 135: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque top java.util.Iterator
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 91
136: aload 9
ifnull 137
aload 11
ifnonnull 184
137: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque
StackMap stack:
aload 18
ifnull 144
138: aload 18
invokeinterface java.util.Deque.removeLast:()Ljava/lang/Object;
checkcast org.springframework.beans.factory.UnsatisfiedDependencyException
astore 19
start local 19 139: aload 18
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 21
goto 142
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque org.springframework.beans.factory.UnsatisfiedDependencyException top java.util.Iterator
StackMap stack:
140: aload 21
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Exception
astore 20
start local 20 141: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 20
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.onSuppressedException:(Ljava/lang/Exception;)V
end local 20 142: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.Iterator.hasNext:()Z
ifne 140
143: aload 19
athrow
end local 19 144: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque
StackMap stack:
new java.util.ArrayList
dup
iload 17
invokespecial java.util.ArrayList.<init>:(I)V
astore 19
start local 19 145: aload 3
ifnull 154
146: aload 3
dup
astore 23
arraylength
istore 22
iconst_0
istore 21
goto 152
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List top int int java.lang.Object[]
StackMap stack:
147: aload 23
iload 21
aaload
astore 20
start local 20 148: aload 19
aload 20
ifnull 149
aload 20
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
goto 150
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.lang.Object int int java.lang.Object[]
StackMap stack: java.util.List
149: ldc "null"
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.lang.Object int int java.lang.Object[]
StackMap stack: java.util.List java.lang.String
150: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 20 151: iinc 21 1
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List top int int java.lang.Object[]
StackMap stack:
152: iload 21
iload 22
if_icmplt 147
153: goto 166
154: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List
StackMap stack:
aload 13
ifnull 166
155: new java.util.LinkedHashSet
dup
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getArgumentCount:()I
invokespecial java.util.LinkedHashSet.<init>:(I)V
astore 20
start local 20 156: aload 20
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getIndexedArgumentValues:()Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
157: aload 20
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getGenericArgumentValues:()Ljava/util/List;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
158: aload 20
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 22
goto 165
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.util.Set top java.util.Iterator
StackMap stack:
159: aload 22
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
astore 21
start local 21 160: aload 21
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getType:()Ljava/lang/String;
ifnull 161
aload 21
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getType:()Ljava/lang/String;
invokestatic org.springframework.util.ClassUtils.getShortName:(Ljava/lang/String;)Ljava/lang/String;
goto 163
161: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.util.Set org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder java.util.Iterator
StackMap stack:
aload 21
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getValue:()Ljava/lang/Object;
ifnull 162
aload 21
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getValue:()Ljava/lang/Object;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
goto 163
StackMap locals:
StackMap stack:
162: ldc "null"
163: StackMap locals:
StackMap stack: java.lang.String
astore 23
start local 23 164: aload 19
aload 23
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 23 end local 21 165: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.util.Set top java.util.Iterator
StackMap stack:
aload 22
invokeinterface java.util.Iterator.hasNext:()Z
ifne 159
end local 20 166: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List
StackMap stack:
aload 19
invokestatic org.springframework.util.StringUtils.collectionToCommaDelimitedString:(Ljava/util/Collection;)Ljava/lang/String;
astore 20
start local 20 167: new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
168: new java.lang.StringBuilder
dup
ldc "No matching factory method found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
169: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getFactoryBeanName:()Ljava/lang/String;
ifnull 171
170: new java.lang.StringBuilder
dup
ldc "factory bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getFactoryBeanName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'; "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 172
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.lang.String
StackMap stack: new 167 new 167 java.lang.String java.lang.String java.lang.StringBuilder
171: ldc ""
172: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.lang.String
StackMap stack: new 167 new 167 java.lang.String java.lang.String java.lang.StringBuilder java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
173: ldc "factory method '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getFactoryMethodName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 20
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")'. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
174: ldc "Check that a method with the specified name "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
175: iload 17
ifle 176
ldc "and arguments "
goto 177
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.lang.String
StackMap stack: new 167 new 167 java.lang.String java.lang.String java.lang.StringBuilder
176: ldc ""
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.lang.String
StackMap stack: new 167 new 167 java.lang.String java.lang.String java.lang.StringBuilder java.lang.String
177: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
178: ldc "exists and that it is "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
179: iload 7
ifeq 180
ldc "static"
goto 181
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.lang.String
StackMap stack: new 167 new 167 java.lang.String java.lang.String java.lang.StringBuilder
180: ldc "non-static"
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[] java.util.List org.springframework.beans.factory.config.ConstructorArgumentValues int int java.util.Set int java.util.Deque java.util.List java.lang.String
StackMap stack: new 167 new 167 java.lang.String java.lang.String java.lang.StringBuilder java.lang.String
181: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
182: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
183: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
end local 20 end local 19 184: StackMap locals:
StackMap stack:
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
aload 9
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
if_acmpne 190
185: new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
186: new java.lang.StringBuilder
dup
ldc "Invalid factory method '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getFactoryMethodName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
187: ldc "': needs to have a non-void return type!"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
188: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
189: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
190: StackMap locals:
StackMap stack:
aload 16
ifnull 197
191: new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
192: new java.lang.StringBuilder
dup
ldc "Ambiguous factory method matches found in bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
193: ldc "(hint: specify index/type/name arguments for simple parameters to avoid type ambiguities): "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
194: aload 16
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
195: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
196: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
197: StackMap locals:
StackMap stack:
aload 3
ifnonnull 200
aload 10
ifnull 200
198: aload 2
aload 9
putfield org.springframework.beans.factory.support.RootBeanDefinition.factoryMethodToIntrospect:Ljava/lang/reflect/Method;
199: aload 10
aload 2
aload 9
invokevirtual org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.storeCache:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/reflect/Executable;)V
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 200: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition java.lang.Object[] org.springframework.beans.BeanWrapperImpl java.lang.Object java.lang.Class int java.lang.String java.lang.reflect.Method org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.lang.Object[]
StackMap stack:
aload 4
aload 0
aload 1
aload 2
aload 5
aload 9
aload 11
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.instantiate:(Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.springframework.beans.BeanWrapperImpl.setBeanInstance:(Ljava/lang/Object;)V
201: aload 4
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 202 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 202 1 beanName Ljava/lang/String;
0 202 2 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 202 3 explicitArgs [Ljava/lang/Object;
1 202 4 bw Lorg/springframework/beans/BeanWrapperImpl;
9 15 5 factoryBean Ljava/lang/Object;
20 202 5 factoryBean Ljava/lang/Object;
13 15 6 factoryClass Ljava/lang/Class<*>;
21 202 6 factoryClass Ljava/lang/Class<*>;
14 15 7 isStatic Z
22 202 7 isStatic Z
3 202 8 factoryBeanName Ljava/lang/String;
23 202 9 factoryMethodToUse Ljava/lang/reflect/Method;
24 202 10 argsHolderToUse Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
25 202 11 argsToUse [Ljava/lang/Object;
29 41 12 argsToResolve [Ljava/lang/Object;
44 200 12 candidates Ljava/util/List<Ljava/lang/reflect/Method;>;
52 58 13 rawCandidates [Ljava/lang/reflect/Method;
54 56 14 candidate Ljava/lang/reflect/Method;
60 72 13 uniqueCandidate Ljava/lang/reflect/Method;
75 200 13 resolvedValues Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
78 200 14 autowiring Z
79 200 15 minTypeDiffWeight I
80 200 16 ambiguousFactoryMethods Ljava/util/Set<Ljava/lang/reflect/Method;>;
82 83 17 minNrOfArgs I
87 88 17 minNrOfArgs I
89 200 17 minNrOfArgs I
85 87 18 cargs Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
90 200 18 causes Ljava/util/Deque<Lorg/springframework/beans/factory/UnsatisfiedDependencyException;>;
92 135 19 candidate Ljava/lang/reflect/Method;
93 135 21 parameterCount I
99 100 22 argsHolder Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
108 109 22 argsHolder Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
116 135 22 argsHolder Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
95 135 23 paramTypes [Ljava/lang/Class;
101 108 24 paramNames [Ljava/lang/String;
102 108 25 pnd Lorg/springframework/core/ParameterNameDiscoverer;
110 116 24 ex Lorg/springframework/beans/factory/UnsatisfiedDependencyException;
120 135 24 typeDiffWeight I
139 144 19 ex Lorg/springframework/beans/factory/UnsatisfiedDependencyException;
141 142 20 cause Ljava/lang/Exception;
145 184 19 argTypes Ljava/util/List<Ljava/lang/String;>;
148 151 20 arg Ljava/lang/Object;
156 166 20 valueHolders Ljava/util/Set<Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;>;
160 165 21 value Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;
164 165 23 argType Ljava/lang/String;
167 184 20 argDesc Ljava/lang/String;
Exception table:
from to target type
30 36 37 any
37 38 37 any
63 67 68 any
68 69 68 any
100 108 109 Class org.springframework.beans.factory.UnsatisfiedDependencyException
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
beanName
mbd
explicitArgs
private java.lang.Object instantiate(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object, java.lang.reflect.Method, java.lang.Object[]);
descriptor: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 5
1: aload 0
aload 2
aload 1
aload 3
aload 4
aload 5
invokedynamic run(Lorg/springframework/beans/factory/support/ConstructorResolver;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/springframework/beans/factory/support/ConstructorResolver.lambda$2(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (7)
()Ljava/lang/Object;
2: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getAccessControlContext:()Ljava/security/AccessControlContext;
3: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
4: areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getInstantiationStrategy:()Lorg/springframework/beans/factory/support/InstantiationStrategy;
6: aload 2
aload 1
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 3
aload 4
aload 5
7: invokeinterface org.springframework.beans.factory.support.InstantiationStrategy.instantiate:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
8: areturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
start local 6 10: new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
11: ldc "Bean instantiation via factory method failed"
aload 6
12: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 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 13 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 13 1 beanName Ljava/lang/String;
0 13 2 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 13 3 factoryBean Ljava/lang/Object;
0 13 4 factoryMethod Ljava/lang/reflect/Method;
0 13 5 args [Ljava/lang/Object;
10 13 6 ex Ljava/lang/Throwable;
Exception table:
from to target type
0 4 9 Class java.lang.Throwable
5 8 9 Class java.lang.Throwable
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
4:
MethodParameters:
Name Flags
beanName
mbd
factoryBean
factoryMethod
args
private int resolveConstructorArguments(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, org.springframework.beans.BeanWrapper, org.springframework.beans.factory.config.ConstructorArgumentValues, org.springframework.beans.factory.config.ConstructorArgumentValues);
descriptor: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/BeanWrapper;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=16, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getCustomTypeConverter:()Lorg/springframework/beans/TypeConverter;
astore 6
start local 6 1: aload 6
ifnull 2
aload 6
goto 3
StackMap locals: org.springframework.beans.TypeConverter
StackMap stack:
2: aload 3
StackMap locals:
StackMap stack: org.springframework.beans.TypeConverter
3: astore 7
start local 7 4: new org.springframework.beans.factory.support.BeanDefinitionValueResolver
dup
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 1
aload 2
aload 7
invokespecial org.springframework.beans.factory.support.BeanDefinitionValueResolver.<init>:(Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;Lorg/springframework/beans/TypeConverter;)V
5: astore 8
start local 8 6: aload 4
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getArgumentCount:()I
istore 9
start local 9 7: aload 4
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getIndexedArgumentValues:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 11
goto 26
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.BeanWrapper org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.BeanDefinitionValueResolver int top java.util.Iterator
StackMap stack:
8: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 10
start local 10 9: aload 10
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 12
start local 12 10: iload 12
ifge 14
11: new org.springframework.beans.factory.BeanCreationException
dup
aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
12: new java.lang.StringBuilder
dup
ldc "Invalid constructor argument index: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 12
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial org.springframework.beans.factory.BeanCreationException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
14: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.BeanWrapper org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.BeanDefinitionValueResolver int java.util.Map$Entry java.util.Iterator int
StackMap stack:
iload 12
iconst_1
iadd
iload 9
if_icmple 16
15: iload 12
iconst_1
iadd
istore 9
16: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
astore 13
start local 13 17: aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.isConverted:()Z
ifeq 20
18: aload 5
iload 12
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addIndexedArgumentValue:(ILorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;)V
19: goto 26
20: StackMap locals: org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
StackMap stack:
aload 8
ldc "constructor argument"
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getValue:()Ljava/lang/Object;
invokevirtual org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
21: astore 14
start local 14 22: new org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
dup
aload 14
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getType:()Ljava/lang/String;
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getName:()Ljava/lang/String;
invokespecial org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V
23: astore 15
start local 15 24: aload 15
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.setSource:(Ljava/lang/Object;)V
25: aload 5
iload 12
aload 15
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addIndexedArgumentValue:(ILorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;)V
end local 15 end local 14 end local 13 end local 12 end local 10 26: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.BeanWrapper org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.BeanDefinitionValueResolver int top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
27: aload 4
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getGenericArgumentValues:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 39
StackMap locals:
StackMap stack:
28: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
astore 10
start local 10 29: aload 10
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.isConverted:()Z
ifeq 32
30: aload 5
aload 10
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addGenericArgumentValue:(Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;)V
31: goto 39
32: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.BeanWrapper org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.BeanDefinitionValueResolver int org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder java.util.Iterator
StackMap stack:
aload 8
ldc "constructor argument"
aload 10
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getValue:()Ljava/lang/Object;
invokevirtual org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
33: astore 12
start local 12 34: new org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
dup
35: aload 12
aload 10
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getType:()Ljava/lang/String;
aload 10
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getName:()Ljava/lang/String;
36: invokespecial org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V
astore 13
start local 13 37: aload 13
aload 10
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.setSource:(Ljava/lang/Object;)V
38: aload 5
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.addGenericArgumentValue:(Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;)V
end local 13 end local 12 end local 10 39: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.BeanWrapper org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.BeanDefinitionValueResolver int top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
40: iload 9
ireturn
end local 9 end local 8 end local 7 end local 6 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 41 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 41 1 beanName Ljava/lang/String;
0 41 2 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 41 3 bw Lorg/springframework/beans/BeanWrapper;
0 41 4 cargs Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
0 41 5 resolvedValues Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
1 41 6 customConverter Lorg/springframework/beans/TypeConverter;
4 41 7 converter Lorg/springframework/beans/TypeConverter;
6 41 8 valueResolver Lorg/springframework/beans/factory/support/BeanDefinitionValueResolver;
7 41 9 minNrOfArgs I
9 26 10 entry Ljava/util/Map$Entry<Ljava/lang/Integer;Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;>;
10 26 12 index I
17 26 13 valueHolder Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;
22 26 14 resolvedValue Ljava/lang/Object;
24 26 15 resolvedValueHolder Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;
29 39 10 valueHolder Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;
34 39 12 resolvedValue Ljava/lang/Object;
37 39 13 resolvedValueHolder Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;
MethodParameters:
Name Flags
beanName
mbd
bw
cargs
resolvedValues
private org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder createArgumentArray(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, org.springframework.beans.factory.config.ConstructorArgumentValues, org.springframework.beans.BeanWrapper, java.lang.Class<?>[], java.lang.String[], java.lang.reflect.Executable, boolean, boolean);
descriptor: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;Lorg/springframework/beans/BeanWrapper;[Ljava/lang/Class;[Ljava/lang/String;Ljava/lang/reflect/Executable;ZZ)Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=24, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getCustomTypeConverter:()Lorg/springframework/beans/TypeConverter;
astore 10
start local 10 1: aload 10
ifnull 2
aload 10
goto 3
StackMap locals: org.springframework.beans.TypeConverter
StackMap stack:
2: aload 4
StackMap locals:
StackMap stack: org.springframework.beans.TypeConverter
3: astore 11
start local 11 4: new org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder
dup
aload 5
arraylength
invokespecial org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.<init>:(I)V
astore 12
start local 12 5: new java.util.HashSet
dup
aload 5
arraylength
invokespecial java.util.HashSet.<init>:(I)V
astore 13
start local 13 6: new java.util.LinkedHashSet
dup
iconst_4
invokespecial java.util.LinkedHashSet.<init>:(I)V
astore 14
start local 14 7: iconst_0
istore 15
start local 15 8: goto 65
9: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapper java.lang.Class[] java.lang.String[] java.lang.reflect.Executable int int org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.util.Set java.util.Set int
StackMap stack:
aload 5
iload 15
aaload
astore 16
start local 16 10: aload 6
ifnull 11
aload 6
iload 15
aaload
goto 12
StackMap locals: java.lang.Class
StackMap stack:
11: ldc ""
StackMap locals:
StackMap stack: java.lang.String
12: astore 17
start local 17 13: aconst_null
astore 18
start local 18 14: aload 3
ifnull 18
15: aload 3
iload 15
aload 16
aload 17
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getArgumentValue:(ILjava/lang/Class;Ljava/lang/String;Ljava/util/Set;)Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;
astore 18
16: aload 18
ifnonnull 18
iload 8
ifeq 17
aload 5
arraylength
aload 3
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getArgumentCount:()I
if_icmpne 18
17: StackMap locals: java.lang.String org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
StackMap stack:
aload 3
aconst_null
aconst_null
aload 13
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues.getGenericArgumentValue:(Ljava/lang/Class;Ljava/lang/String;Ljava/util/Set;)Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;
astore 18
18: StackMap locals:
StackMap stack:
aload 18
ifnull 44
19: aload 13
aload 18
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
20: aload 18
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getValue:()Ljava/lang/Object;
astore 19
start local 19 21: aload 18
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.isConverted:()Z
ifeq 25
22: aload 18
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getConvertedValue:()Ljava/lang/Object;
astore 20
start local 20 23: aload 12
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.preparedArguments:[Ljava/lang/Object;
iload 15
aload 20
aastore
24: goto 41
end local 20 25: StackMap locals: java.lang.Object
StackMap stack:
aload 7
iload 15
invokestatic org.springframework.core.MethodParameter.forExecutable:(Ljava/lang/reflect/Executable;I)Lorg/springframework/core/MethodParameter;
astore 21
start local 21 26: aload 11
aload 19
aload 16
aload 21
invokeinterface org.springframework.beans.TypeConverter.convertIfNecessary:(Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/MethodParameter;)Ljava/lang/Object;
astore 20
start local 20 27: goto 36
end local 20 28: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapper java.lang.Class[] java.lang.String[] java.lang.reflect.Executable int int org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.util.Set java.util.Set int java.lang.Class java.lang.String org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder java.lang.Object top org.springframework.core.MethodParameter
StackMap stack: org.springframework.beans.TypeMismatchException
astore 22
start local 22 29: new org.springframework.beans.factory.UnsatisfiedDependencyException
dup
30: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
new org.springframework.beans.factory.InjectionPoint
dup
aload 21
invokespecial org.springframework.beans.factory.InjectionPoint.<init>:(Lorg/springframework/core/MethodParameter;)V
31: new java.lang.StringBuilder
dup
ldc "Could not convert argument value of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: aload 18
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getValue:()Ljava/lang/Object;
invokestatic org.springframework.util.ObjectUtils.nullSafeClassName:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc "] to required type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 16
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 22
invokevirtual org.springframework.beans.TypeMismatchException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
35: invokespecial org.springframework.beans.factory.UnsatisfiedDependencyException.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/springframework/beans/factory/InjectionPoint;Ljava/lang/String;)V
athrow
end local 22 start local 20 36: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapper java.lang.Class[] java.lang.String[] java.lang.reflect.Executable int int org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.util.Set java.util.Set int java.lang.Class java.lang.String org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder java.lang.Object java.lang.Object org.springframework.core.MethodParameter
StackMap stack:
aload 18
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getSource:()Ljava/lang/Object;
astore 22
start local 22 37: aload 22
instanceof org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
ifeq 41
38: aload 22
checkcast org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder
invokevirtual org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder.getValue:()Ljava/lang/Object;
astore 23
start local 23 39: aload 12
iconst_1
putfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.resolveNecessary:Z
40: aload 12
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.preparedArguments:[Ljava/lang/Object;
iload 15
aload 23
aastore
end local 23 end local 22 end local 21 41: StackMap locals:
StackMap stack:
aload 12
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.arguments:[Ljava/lang/Object;
iload 15
aload 20
aastore
42: aload 12
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.rawArguments:[Ljava/lang/Object;
iload 15
aload 19
aastore
end local 20 end local 19 43: goto 64
44: StackMap locals:
StackMap stack:
aload 7
iload 15
invokestatic org.springframework.core.MethodParameter.forExecutable:(Ljava/lang/reflect/Executable;I)Lorg/springframework/core/MethodParameter;
astore 19
start local 19 45: iload 8
ifne 52
46: new org.springframework.beans.factory.UnsatisfiedDependencyException
dup
47: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
new org.springframework.beans.factory.InjectionPoint
dup
aload 19
invokespecial org.springframework.beans.factory.InjectionPoint.<init>:(Lorg/springframework/core/MethodParameter;)V
48: new java.lang.StringBuilder
dup
ldc "Ambiguous argument values for parameter of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 16
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
49: ldc "] - did you specify the correct bean references as arguments?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
50: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
51: invokespecial org.springframework.beans.factory.UnsatisfiedDependencyException.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/springframework/beans/factory/InjectionPoint;Ljava/lang/String;)V
athrow
52: StackMap locals: org.springframework.core.MethodParameter
StackMap stack:
aload 0
53: aload 19
aload 1
aload 14
aload 11
iload 9
54: invokevirtual org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument:(Lorg/springframework/core/MethodParameter;Ljava/lang/String;Ljava/util/Set;Lorg/springframework/beans/TypeConverter;Z)Ljava/lang/Object;
astore 20
start local 20 55: aload 12
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.rawArguments:[Ljava/lang/Object;
iload 15
aload 20
aastore
56: aload 12
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.arguments:[Ljava/lang/Object;
iload 15
aload 20
aastore
57: aload 12
getfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.preparedArguments:[Ljava/lang/Object;
iload 15
getstatic org.springframework.beans.factory.support.ConstructorResolver.autowiredArgumentMarker:Ljava/lang/Object;
aastore
58: aload 12
iconst_1
putfield org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder.resolveNecessary:Z
end local 20 59: goto 64
60: StackMap locals:
StackMap stack: org.springframework.beans.BeansException
astore 20
start local 20 61: new org.springframework.beans.factory.UnsatisfiedDependencyException
dup
62: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
new org.springframework.beans.factory.InjectionPoint
dup
aload 19
invokespecial org.springframework.beans.factory.InjectionPoint.<init>:(Lorg/springframework/core/MethodParameter;)V
aload 20
63: invokespecial org.springframework.beans.factory.UnsatisfiedDependencyException.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/springframework/beans/factory/InjectionPoint;Lorg/springframework/beans/BeansException;)V
athrow
end local 20 end local 19 end local 18 end local 17 end local 16 64: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapper java.lang.Class[] java.lang.String[] java.lang.reflect.Executable int int org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.util.Set java.util.Set int
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
65: iload 15
aload 5
arraylength
if_icmplt 9
end local 15 66: aload 14
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 16
goto 76
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapper java.lang.Class[] java.lang.String[] java.lang.reflect.Executable int int org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
67: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 15
start local 15 68: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 15
aload 1
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.registerDependentBean:(Ljava/lang/String;Ljava/lang/String;)V
69: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 76
70: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Autowiring by type from bean name '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
71: ldc "' via "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
instanceof java.lang.reflect.Constructor
ifeq 72
ldc "constructor"
goto 73
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapper java.lang.Class[] java.lang.String[] java.lang.reflect.Executable int int org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.util.Set java.util.Set java.lang.String java.util.Iterator
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder
72: ldc "factory method"
StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapper java.lang.Class[] java.lang.String[] java.lang.reflect.Executable int int org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.util.Set java.util.Set java.lang.String java.util.Iterator
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder java.lang.String
73: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
74: ldc " to bean named '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 15
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;
75: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
end local 15 76: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.factory.config.ConstructorArgumentValues org.springframework.beans.BeanWrapper java.lang.Class[] java.lang.String[] java.lang.reflect.Executable int int org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 67
77: aload 12
areturn
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 6 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 78 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 78 1 beanName Ljava/lang/String;
0 78 2 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 78 3 resolvedValues Lorg/springframework/beans/factory/config/ConstructorArgumentValues;
0 78 4 bw Lorg/springframework/beans/BeanWrapper;
0 78 5 paramTypes [Ljava/lang/Class;
0 78 6 paramNames [Ljava/lang/String;
0 78 7 executable Ljava/lang/reflect/Executable;
0 78 8 autowiring Z
0 78 9 fallback Z
1 78 10 customConverter Lorg/springframework/beans/TypeConverter;
4 78 11 converter Lorg/springframework/beans/TypeConverter;
5 78 12 args Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
6 78 13 usedValueHolders Ljava/util/Set<Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;>;
7 78 14 autowiredBeanNames Ljava/util/Set<Ljava/lang/String;>;
8 66 15 paramIndex I
10 64 16 paramType Ljava/lang/Class<*>;
13 64 17 paramName Ljava/lang/String;
14 64 18 valueHolder Lorg/springframework/beans/factory/config/ConstructorArgumentValues$ValueHolder;
21 43 19 originalValue Ljava/lang/Object;
23 25 20 convertedValue Ljava/lang/Object;
27 28 20 convertedValue Ljava/lang/Object;
36 43 20 convertedValue Ljava/lang/Object;
26 41 21 methodParam Lorg/springframework/core/MethodParameter;
29 36 22 ex Lorg/springframework/beans/TypeMismatchException;
37 41 22 sourceHolder Ljava/lang/Object;
39 41 23 sourceValue Ljava/lang/Object;
45 64 19 methodParam Lorg/springframework/core/MethodParameter;
55 59 20 autowiredArgument Ljava/lang/Object;
61 64 20 ex Lorg/springframework/beans/BeansException;
68 76 15 autowiredBeanName Ljava/lang/String;
Exception table:
from to target type
26 27 28 Class org.springframework.beans.TypeMismatchException
52 59 60 Class org.springframework.beans.BeansException
Exceptions:
throws org.springframework.beans.factory.UnsatisfiedDependencyException
Signature: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/factory/config/ConstructorArgumentValues;Lorg/springframework/beans/BeanWrapper;[Ljava/lang/Class<*>;[Ljava/lang/String;Ljava/lang/reflect/Executable;ZZ)Lorg/springframework/beans/factory/support/ConstructorResolver$ArgumentsHolder;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
4:
5:
org.springframework.lang.Nullable()
6:
7:
8:
MethodParameters:
Name Flags
beanName
mbd
resolvedValues
bw
paramTypes
paramNames
executable
autowiring
fallback
private java.lang.Object[] resolvePreparedArguments(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, org.springframework.beans.BeanWrapper, java.lang.reflect.Executable, java.lang.Object[]);
descriptor: (Ljava/lang/String;Lorg/springframework/beans/factory/support/RootBeanDefinition;Lorg/springframework/beans/BeanWrapper;Ljava/lang/reflect/Executable;[Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=16, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getCustomTypeConverter:()Lorg/springframework/beans/TypeConverter;
astore 6
start local 6 1: aload 6
ifnull 2
aload 6
goto 3
StackMap locals: org.springframework.beans.TypeConverter
StackMap stack:
2: aload 3
StackMap locals:
StackMap stack: org.springframework.beans.TypeConverter
3: astore 7
start local 7 4: new org.springframework.beans.factory.support.BeanDefinitionValueResolver
dup
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 1
aload 2
aload 7
invokespecial org.springframework.beans.factory.support.BeanDefinitionValueResolver.<init>:(Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;Lorg/springframework/beans/TypeConverter;)V
5: astore 8
start local 8 6: aload 4
invokevirtual java.lang.reflect.Executable.getParameterTypes:()[Ljava/lang/Class;
astore 9
start local 9 7: aload 5
arraylength
anewarray java.lang.Object
astore 10
start local 10 8: iconst_0
istore 11
start local 11 9: goto 31
10: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.BeanWrapper java.lang.reflect.Executable java.lang.Object[] org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.BeanDefinitionValueResolver java.lang.Class[] java.lang.Object[] int
StackMap stack:
aload 5
iload 11
aaload
astore 12
start local 12 11: aload 4
iload 11
invokestatic org.springframework.core.MethodParameter.forExecutable:(Ljava/lang/reflect/Executable;I)Lorg/springframework/core/MethodParameter;
astore 13
start local 13 12: aload 12
getstatic org.springframework.beans.factory.support.ConstructorResolver.autowiredArgumentMarker:Ljava/lang/Object;
if_acmpne 15
13: aload 0
aload 13
aload 1
aconst_null
aload 7
iconst_1
invokevirtual org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument:(Lorg/springframework/core/MethodParameter;Ljava/lang/String;Ljava/util/Set;Lorg/springframework/beans/TypeConverter;Z)Ljava/lang/Object;
astore 12
14: goto 20
15: StackMap locals: java.lang.Object org.springframework.core.MethodParameter
StackMap stack:
aload 12
instanceof org.springframework.beans.BeanMetadataElement
ifeq 18
16: aload 8
ldc "constructor argument"
aload 12
invokevirtual org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
astore 12
17: goto 20
18: StackMap locals:
StackMap stack:
aload 12
instanceof java.lang.String
ifeq 20
19: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 12
checkcast java.lang.String
aload 2
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.evaluateBeanDefinitionString:(Ljava/lang/String;Lorg/springframework/beans/factory/config/BeanDefinition;)Ljava/lang/Object;
astore 12
20: StackMap locals:
StackMap stack:
aload 9
iload 11
aaload
astore 14
start local 14 21: aload 10
iload 11
aload 7
aload 12
aload 14
aload 13
invokeinterface org.springframework.beans.TypeConverter.convertIfNecessary:(Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/MethodParameter;)Ljava/lang/Object;
aastore
22: goto 30
23: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.String org.springframework.beans.factory.support.RootBeanDefinition org.springframework.beans.BeanWrapper java.lang.reflect.Executable java.lang.Object[] org.springframework.beans.TypeConverter org.springframework.beans.TypeConverter org.springframework.beans.factory.support.BeanDefinitionValueResolver java.lang.Class[] java.lang.Object[] int java.lang.Object org.springframework.core.MethodParameter java.lang.Class
StackMap stack: org.springframework.beans.TypeMismatchException
astore 15
start local 15 24: new org.springframework.beans.factory.UnsatisfiedDependencyException
dup
25: aload 2
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.getResourceDescription:()Ljava/lang/String;
aload 1
new org.springframework.beans.factory.InjectionPoint
dup
aload 13
invokespecial org.springframework.beans.factory.InjectionPoint.<init>:(Lorg/springframework/core/MethodParameter;)V
26: new java.lang.StringBuilder
dup
ldc "Could not convert argument value of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 12
invokestatic org.springframework.util.ObjectUtils.nullSafeClassName:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: ldc "] to required type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 14
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 15
invokevirtual org.springframework.beans.TypeMismatchException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
28: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokespecial org.springframework.beans.factory.UnsatisfiedDependencyException.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/springframework/beans/factory/InjectionPoint;Ljava/lang/String;)V
athrow
end local 15 end local 14 end local 13 end local 12 30: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
31: iload 11
aload 5
arraylength
if_icmplt 10
end local 11 32: aload 10
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 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 33 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 33 1 beanName Ljava/lang/String;
0 33 2 mbd Lorg/springframework/beans/factory/support/RootBeanDefinition;
0 33 3 bw Lorg/springframework/beans/BeanWrapper;
0 33 4 executable Ljava/lang/reflect/Executable;
0 33 5 argsToResolve [Ljava/lang/Object;
1 33 6 customConverter Lorg/springframework/beans/TypeConverter;
4 33 7 converter Lorg/springframework/beans/TypeConverter;
6 33 8 valueResolver Lorg/springframework/beans/factory/support/BeanDefinitionValueResolver;
7 33 9 paramTypes [Ljava/lang/Class;
8 33 10 resolvedArgs [Ljava/lang/Object;
9 32 11 argIndex I
11 30 12 argValue Ljava/lang/Object;
12 30 13 methodParam Lorg/springframework/core/MethodParameter;
21 30 14 paramType Ljava/lang/Class<*>;
24 30 15 ex Lorg/springframework/beans/TypeMismatchException;
Exception table:
from to target type
21 22 23 Class org.springframework.beans.TypeMismatchException
MethodParameters:
Name Flags
beanName
mbd
bw
executable
argsToResolve
protected java.lang.reflect.Constructor<?> getUserDeclaredConstructor(java.lang.reflect.Constructor<?>);
descriptor: (Ljava/lang/reflect/Constructor;)Ljava/lang/reflect/Constructor;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
astore 2
start local 2 1: aload 2
invokestatic org.springframework.util.ClassUtils.getUserClass:(Ljava/lang/Class;)Ljava/lang/Class;
astore 3
start local 3 2: aload 3
aload 2
if_acmpeq 6
3: aload 3
aload 1
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
4: areturn
5: StackMap locals: org.springframework.beans.factory.support.ConstructorResolver java.lang.reflect.Constructor java.lang.Class java.lang.Class
StackMap stack: java.lang.NoSuchMethodException
pop
6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 7 1 constructor Ljava/lang/reflect/Constructor<*>;
1 7 2 declaringClass Ljava/lang/Class<*>;
2 7 3 userClass Ljava/lang/Class<*>;
Exception table:
from to target type
3 4 5 Class java.lang.NoSuchMethodException
Signature: (Ljava/lang/reflect/Constructor<*>;)Ljava/lang/reflect/Constructor<*>;
MethodParameters:
Name Flags
constructor
protected resolveAutowiredArgument(org.springframework.core.MethodParameter, java.lang.String, java.util.Set<java.lang.String>, org.springframework.beans.TypeConverter, boolean);
descriptor: (Lorg/springframework/core/MethodParameter;Ljava/lang/String;Ljava/util/Set;Lorg/springframework/beans/TypeConverter;Z)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
astore 6
start local 6 1: ldc Lorg/springframework/beans/factory/InjectionPoint;
aload 6
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 6
2: getstatic org.springframework.beans.factory.support.ConstructorResolver.currentInjectionPoint:Lorg/springframework/core/NamedThreadLocal;
invokevirtual org.springframework.core.NamedThreadLocal.get:()Ljava/lang/Object;
checkcast org.springframework.beans.factory.InjectionPoint
astore 7
start local 7 3: aload 7
ifnonnull 5
4: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "No current InjectionPoint available for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Class org.springframework.beans.factory.InjectionPoint
StackMap stack:
aload 7
areturn
end local 7 6: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
7: new org.springframework.beans.factory.config.DependencyDescriptor
dup
aload 1
iconst_1
invokespecial org.springframework.beans.factory.config.DependencyDescriptor.<init>:(Lorg/springframework/core/MethodParameter;Z)V
aload 2
aload 3
aload 4
8: invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveDependency:(Lorg/springframework/beans/factory/config/DependencyDescriptor;Ljava/lang/String;Ljava/util/Set;Lorg/springframework/beans/TypeConverter;)Ljava/lang/Object;
9: areturn
10: StackMap locals:
StackMap stack: org.springframework.beans.factory.NoUniqueBeanDefinitionException
astore 7
start local 7 11: aload 7
athrow
end local 7 12: StackMap locals:
StackMap stack: org.springframework.beans.factory.NoSuchBeanDefinitionException
astore 7
start local 7 13: iload 5
ifeq 20
14: aload 6
invokevirtual java.lang.Class.isArray:()Z
ifeq 16
15: aload 6
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
iconst_0
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
areturn
16: StackMap locals: org.springframework.beans.factory.NoSuchBeanDefinitionException
StackMap stack:
aload 6
invokestatic org.springframework.core.CollectionFactory.isApproximableCollectionType:(Ljava/lang/Class;)Z
ifeq 18
17: aload 6
iconst_0
invokestatic org.springframework.core.CollectionFactory.createCollection:(Ljava/lang/Class;I)Ljava/util/Collection;
areturn
18: StackMap locals:
StackMap stack:
aload 6
invokestatic org.springframework.core.CollectionFactory.isApproximableMapType:(Ljava/lang/Class;)Z
ifeq 20
19: aload 6
iconst_0
invokestatic org.springframework.core.CollectionFactory.createMap:(Ljava/lang/Class;I)Ljava/util/Map;
areturn
20: StackMap locals:
StackMap stack:
aload 7
athrow
end local 7 end local 6 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 21 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
0 21 1 param Lorg/springframework/core/MethodParameter;
0 21 2 beanName Ljava/lang/String;
0 21 3 autowiredBeanNames Ljava/util/Set<Ljava/lang/String;>;
0 21 4 typeConverter Lorg/springframework/beans/TypeConverter;
0 21 5 fallback Z
1 21 6 paramType Ljava/lang/Class<*>;
3 6 7 injectionPoint Lorg/springframework/beans/factory/InjectionPoint;
11 12 7 ex Lorg/springframework/beans/factory/NoUniqueBeanDefinitionException;
13 21 7 ex Lorg/springframework/beans/factory/NoSuchBeanDefinitionException;
Exception table:
from to target type
6 9 10 Class org.springframework.beans.factory.NoUniqueBeanDefinitionException
6 9 12 Class org.springframework.beans.factory.NoSuchBeanDefinitionException
Signature: (Lorg/springframework/core/MethodParameter;Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;Lorg/springframework/beans/TypeConverter;Z)Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
4:
MethodParameters:
Name Flags
param
beanName
autowiredBeanNames
typeConverter
fallback
static org.springframework.beans.factory.InjectionPoint setCurrentInjectionPoint(org.springframework.beans.factory.InjectionPoint);
descriptor: (Lorg/springframework/beans/factory/InjectionPoint;)Lorg/springframework/beans/factory/InjectionPoint;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.springframework.beans.factory.support.ConstructorResolver.currentInjectionPoint:Lorg/springframework/core/NamedThreadLocal;
invokevirtual org.springframework.core.NamedThreadLocal.get:()Ljava/lang/Object;
checkcast org.springframework.beans.factory.InjectionPoint
astore 1
start local 1 1: aload 0
ifnull 4
2: getstatic org.springframework.beans.factory.support.ConstructorResolver.currentInjectionPoint:Lorg/springframework/core/NamedThreadLocal;
aload 0
invokevirtual org.springframework.core.NamedThreadLocal.set:(Ljava/lang/Object;)V
3: goto 5
4: StackMap locals: org.springframework.beans.factory.InjectionPoint
StackMap stack:
getstatic org.springframework.beans.factory.support.ConstructorResolver.currentInjectionPoint:Lorg/springframework/core/NamedThreadLocal;
invokevirtual org.springframework.core.NamedThreadLocal.remove:()V
5: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 injectionPoint Lorg/springframework/beans/factory/InjectionPoint;
1 6 1 old Lorg/springframework/beans/factory/InjectionPoint;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
injectionPoint
private java.lang.Object lambda$0(org.springframework.beans.factory.support.InstantiationStrategy, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.String, java.lang.reflect.Constructor, java.lang.Object[]);
descriptor: (Lorg/springframework/beans/factory/support/InstantiationStrategy;Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=6, args_size=6
start local 0 0: aload 1
aload 2
aload 3
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 4
aload 5
invokeinterface org.springframework.beans.factory.support.InstantiationStrategy.instantiate:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
private static java.lang.reflect.Method[] lambda$1(org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Class);
descriptor: (Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/Class;)[Ljava/lang/reflect/Method;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
0: aload 0
invokevirtual org.springframework.beans.factory.support.RootBeanDefinition.isNonPublicAccessAllowed:()Z
ifeq 2
1: aload 1
invokestatic org.springframework.util.ReflectionUtils.getAllDeclaredMethods:(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
goto 3
StackMap locals:
StackMap stack:
2: aload 1
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
StackMap locals:
StackMap stack: java.lang.reflect.Method[]
3: areturn
LocalVariableTable:
Start End Slot Name Signature
private java.lang.Object lambda$2(org.springframework.beans.factory.support.RootBeanDefinition, java.lang.String, java.lang.Object, java.lang.reflect.Method, java.lang.Object[]);
descriptor: (Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=7, locals=6, args_size=6
start local 0 0: aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
invokevirtual org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getInstantiationStrategy:()Lorg/springframework/beans/factory/support/InstantiationStrategy;
1: aload 1
aload 2
aload 0
getfield org.springframework.beans.factory.support.ConstructorResolver.beanFactory:Lorg/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory;
aload 3
aload 4
aload 5
2: invokeinterface org.springframework.beans.factory.support.InstantiationStrategy.instantiate:(Lorg/springframework/beans/factory/support/RootBeanDefinition;Ljava/lang/String;Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/factory/support/ConstructorResolver;
}
SourceFile: "ConstructorResolver.java"
NestMembers:
org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder org.springframework.beans.factory.support.ConstructorResolver$ConstructorPropertiesChecker
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
public ValueHolder = org.springframework.beans.factory.config.ConstructorArgumentValues$ValueHolder of org.springframework.beans.factory.config.ConstructorArgumentValues
private ArgumentsHolder = org.springframework.beans.factory.support.ConstructorResolver$ArgumentsHolder of org.springframework.beans.factory.support.ConstructorResolver
private ConstructorPropertiesChecker = org.springframework.beans.factory.support.ConstructorResolver$ConstructorPropertiesChecker of org.springframework.beans.factory.support.ConstructorResolver