class org.springframework.beans.TypeConverterDelegate
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.beans.TypeConverterDelegate
super_class: java.lang.Object
{
private static final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.springframework.beans.PropertyEditorRegistrySupport propertyEditorRegistry;
descriptor: Lorg/springframework/beans/PropertyEditorRegistrySupport;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object targetObject;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/springframework/beans/TypeConverterDelegate;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.springframework.beans.PropertyEditorRegistrySupport);
descriptor: (Lorg/springframework/beans/PropertyEditorRegistrySupport;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokespecial org.springframework.beans.TypeConverterDelegate.<init>:(Lorg/springframework/beans/PropertyEditorRegistrySupport;Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 2 1 propertyEditorRegistry Lorg/springframework/beans/PropertyEditorRegistrySupport;
MethodParameters:
Name Flags
propertyEditorRegistry
public void <init>(org.springframework.beans.PropertyEditorRegistrySupport, java.lang.Object);
descriptor: (Lorg/springframework/beans/PropertyEditorRegistrySupport;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
2: aload 0
aload 2
putfield org.springframework.beans.TypeConverterDelegate.targetObject:Ljava/lang/Object;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 4 1 propertyEditorRegistry Lorg/springframework/beans/PropertyEditorRegistrySupport;
0 4 2 targetObject Ljava/lang/Object;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
propertyEditorRegistry
targetObject
public <T> T convertIfNecessary(java.lang.String, , , java.lang.Class<T>);
descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aload 4
aload 4
invokestatic org.springframework.core.convert.TypeDescriptor.valueOf:(Ljava/lang/Class;)Lorg/springframework/core/convert/TypeDescriptor;
invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 1 1 propertyName Ljava/lang/String;
0 1 2 oldValue Ljava/lang/Object;
0 1 3 newValue Ljava/lang/Object;
0 1 4 requiredType Ljava/lang/Class<TT;>;
Exceptions:
throws java.lang.IllegalArgumentException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
org.springframework.lang.Nullable()
2:
3:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
propertyName
oldValue
newValue
requiredType
public <T> T convertIfNecessary(java.lang.String, , , java.lang.Class<T>, org.springframework.core.convert.TypeDescriptor);
descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, 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.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
aload 4
aload 1
invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.findCustomEditor:(Ljava/lang/Class;Ljava/lang/String;)Ljava/beans/PropertyEditor;
astore 6
start local 6 1: aconst_null
astore 7
start local 7 2: aload 0
getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.getConversionService:()Lorg/springframework/core/convert/ConversionService;
astore 8
start local 8 3: aload 6
ifnonnull 10
aload 8
ifnull 10
aload 3
ifnull 10
aload 5
ifnull 10
4: aload 3
invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
astore 9
start local 9 5: aload 8
aload 9
aload 5
invokeinterface org.springframework.core.convert.ConversionService.canConvert:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Z
ifeq 10
6: aload 8
aload 3
aload 9
aload 5
invokeinterface org.springframework.core.convert.ConversionService.convert:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
7: areturn
8: StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.String java.lang.Object java.lang.Object java.lang.Class org.springframework.core.convert.TypeDescriptor java.beans.PropertyEditor org.springframework.core.convert.ConversionFailedException org.springframework.core.convert.ConversionService org.springframework.core.convert.TypeDescriptor
StackMap stack: org.springframework.core.convert.ConversionFailedException
astore 10
start local 10 9: aload 10
astore 7
end local 10 end local 9 10: StackMap locals:
StackMap stack:
aload 3
astore 9
start local 9 11: aload 6
ifnonnull 12
aload 4
ifnull 22
aload 4
aload 9
invokestatic org.springframework.util.ClassUtils.isAssignableValue:(Ljava/lang/Class;Ljava/lang/Object;)Z
ifne 22
12: StackMap locals: java.lang.Object
StackMap stack:
aload 5
ifnull 19
aload 4
ifnull 19
ldc Ljava/util/Collection;
aload 4
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 19
13: aload 9
instanceof java.lang.String
ifeq 19
14: aload 5
invokevirtual org.springframework.core.convert.TypeDescriptor.getElementTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
astore 10
start local 10 15: aload 10
ifnull 19
16: aload 10
invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
astore 11
start local 11 17: ldc Ljava/lang/Class;
aload 11
if_acmpeq 18
ldc Ljava/lang/Enum;
aload 11
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 19
18: StackMap locals: org.springframework.core.convert.TypeDescriptor java.lang.Class
StackMap stack:
aload 9
checkcast java.lang.String
invokestatic org.springframework.util.StringUtils.commaDelimitedListToStringArray:(Ljava/lang/String;)[Ljava/lang/String;
astore 9
end local 11 end local 10 19: StackMap locals:
StackMap stack:
aload 6
ifnonnull 21
20: aload 0
aload 4
invokevirtual org.springframework.beans.TypeConverterDelegate.findDefaultEditor:(Ljava/lang/Class;)Ljava/beans/PropertyEditor;
astore 6
21: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 9
aload 4
aload 6
invokevirtual org.springframework.beans.TypeConverterDelegate.doConvertValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
astore 9
22: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 23: aload 4
ifnull 94
24: aload 9
ifnull 70
25: ldc Ljava/lang/Object;
aload 4
if_acmpne 27
26: aload 9
areturn
27: StackMap locals: int
StackMap stack:
aload 4
invokevirtual java.lang.Class.isArray:()Z
ifeq 31
28: aload 9
instanceof java.lang.String
ifeq 30
ldc Ljava/lang/Enum;
aload 4
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 30
29: aload 9
checkcast java.lang.String
invokestatic org.springframework.util.StringUtils.commaDelimitedListToStringArray:(Ljava/lang/String;)[Ljava/lang/String;
astore 9
30: StackMap locals:
StackMap stack:
aload 0
aload 9
aload 1
aload 4
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
invokevirtual org.springframework.beans.TypeConverterDelegate.convertToTypedArray:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
areturn
31: StackMap locals:
StackMap stack:
aload 9
instanceof java.util.Collection
ifeq 37
32: aload 0
33: aload 9
checkcast java.util.Collection
aload 1
aload 4
aload 5
34: invokevirtual org.springframework.beans.TypeConverterDelegate.convertToTypedCollection:(Ljava/util/Collection;Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Collection;
astore 9
35: iconst_1
istore 10
36: goto 42
37: StackMap locals:
StackMap stack:
aload 9
instanceof java.util.Map
ifeq 42
38: aload 0
39: aload 9
checkcast java.util.Map
aload 1
aload 4
aload 5
40: invokevirtual org.springframework.beans.TypeConverterDelegate.convertToTypedMap:(Ljava/util/Map;Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Map;
astore 9
41: iconst_1
istore 10
42: StackMap locals:
StackMap stack:
aload 9
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 45
aload 9
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
iconst_1
if_icmpne 45
43: aload 9
iconst_0
invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
astore 9
44: iconst_1
istore 10
45: StackMap locals:
StackMap stack:
ldc Ljava/lang/String;
aload 4
if_acmpne 47
aload 9
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.springframework.util.ClassUtils.isPrimitiveOrWrapper:(Ljava/lang/Class;)Z
ifeq 47
46: aload 9
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
47: StackMap locals:
StackMap stack:
aload 9
instanceof java.lang.String
ifeq 65
aload 4
aload 9
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 65
48: aload 7
ifnonnull 59
aload 4
invokevirtual java.lang.Class.isInterface:()Z
ifne 59
aload 4
invokevirtual java.lang.Class.isEnum:()Z
ifne 59
49: aload 4
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 11
start local 11 50: aload 11
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 9
aastore
invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
51: areturn
end local 11 52: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
astore 11
start local 11 53: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 59
54: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "No String constructor found on type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 11
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 11 55: goto 59
56: StackMap locals:
StackMap stack: java.lang.Exception
astore 11
start local 11 57: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 59
58: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Construction via String failed for type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 11
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 11 59: StackMap locals:
StackMap stack:
aload 9
checkcast java.lang.String
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 11
start local 11 60: aload 4
invokevirtual java.lang.Class.isEnum:()Z
ifeq 62
aload 11
invokevirtual java.lang.String.isEmpty:()Z
ifeq 62
61: aconst_null
areturn
62: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 4
aload 11
aload 9
invokevirtual org.springframework.beans.TypeConverterDelegate.attemptToConvertStringToEnum:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
astore 9
63: iconst_1
istore 10
end local 11 64: goto 72
65: StackMap locals:
StackMap stack:
aload 9
instanceof java.lang.Number
ifeq 72
ldc Ljava/lang/Number;
aload 4
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 72
66: aload 9
checkcast java.lang.Number
aload 4
67: invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
astore 9
68: iconst_1
istore 10
69: goto 72
70: StackMap locals:
StackMap stack:
aload 4
ldc Ljava/util/Optional;
if_acmpne 72
71: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
astore 9
72: StackMap locals:
StackMap stack:
aload 4
aload 9
invokestatic org.springframework.util.ClassUtils.isAssignableValue:(Ljava/lang/Class;Ljava/lang/Object;)Z
ifne 94
73: aload 7
ifnull 75
74: aload 7
athrow
75: StackMap locals:
StackMap stack:
aload 8
ifnull 79
aload 5
ifnull 79
76: aload 3
invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
astore 11
start local 11 77: aload 8
aload 11
aload 5
invokeinterface org.springframework.core.convert.ConversionService.canConvert:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Z
ifeq 79
78: aload 8
aload 3
aload 11
aload 5
invokeinterface org.springframework.core.convert.ConversionService.convert:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
areturn
end local 11 79: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 11
start local 11 80: aload 11
ldc "Cannot convert value of type '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokestatic org.springframework.util.ClassUtils.getDescriptiveType:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
81: aload 11
ldc "' to required type '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokestatic org.springframework.util.ClassUtils.getQualifiedName:(Ljava/lang/Class;)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;
pop
82: aload 1
ifnull 84
83: aload 11
ldc " for property '"
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;
pop
84: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 6
ifnull 92
85: aload 11
ldc ": PropertyEditor ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
86: ldc "] returned inappropriate value of type '"
87: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
88: aload 9
invokestatic org.springframework.util.ClassUtils.getDescriptiveType:(Ljava/lang/Object;)Ljava/lang/String;
89: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
90: ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
91: new java.lang.IllegalArgumentException
dup
aload 11
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
92: StackMap locals:
StackMap stack:
aload 11
ldc ": no matching editors or conversion strategy found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
93: new java.lang.IllegalStateException
dup
aload 11
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 11 94: StackMap locals:
StackMap stack:
aload 7
ifnull 100
95: aload 6
ifnonnull 97
iload 10
ifne 97
aload 4
ifnull 97
ldc Ljava/lang/Object;
aload 4
if_acmpeq 97
96: aload 7
athrow
97: StackMap locals:
StackMap stack:
getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
ldc "Original ConversionService attempt failed - ignored since PropertyEditor based conversion eventually succeeded"
98: aload 7
99: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
100: StackMap locals:
StackMap stack:
aload 9
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 101 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 101 1 propertyName Ljava/lang/String;
0 101 2 oldValue Ljava/lang/Object;
0 101 3 newValue Ljava/lang/Object;
0 101 4 requiredType Ljava/lang/Class<TT;>;
0 101 5 typeDescriptor Lorg/springframework/core/convert/TypeDescriptor;
1 101 6 editor Ljava/beans/PropertyEditor;
2 101 7 conversionAttemptEx Lorg/springframework/core/convert/ConversionFailedException;
3 101 8 conversionService Lorg/springframework/core/convert/ConversionService;
5 10 9 sourceTypeDesc Lorg/springframework/core/convert/TypeDescriptor;
9 10 10 ex Lorg/springframework/core/convert/ConversionFailedException;
11 101 9 convertedValue Ljava/lang/Object;
15 19 10 elementTypeDesc Lorg/springframework/core/convert/TypeDescriptor;
17 19 11 elementType Ljava/lang/Class<*>;
23 101 10 standardConversion Z
50 52 11 strCtor Ljava/lang/reflect/Constructor<TT;>;
53 55 11 ex Ljava/lang/NoSuchMethodException;
57 59 11 ex Ljava/lang/Exception;
60 64 11 trimmedValue Ljava/lang/String;
77 79 11 sourceTypeDesc Lorg/springframework/core/convert/TypeDescriptor;
80 94 11 msg Ljava/lang/StringBuilder;
Exception table:
from to target type
6 7 8 Class org.springframework.core.convert.ConversionFailedException
49 51 52 Class java.lang.NoSuchMethodException
49 51 56 Class java.lang.Exception
Exceptions:
throws java.lang.IllegalArgumentException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class<TT;>;Lorg/springframework/core/convert/TypeDescriptor;)TT;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
org.springframework.lang.Nullable()
2:
org.springframework.lang.Nullable()
3:
org.springframework.lang.Nullable()
4:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
propertyName
oldValue
newValue
requiredType
typeDescriptor
private attemptToConvertStringToEnum(java.lang.Class<?>, java.lang.String, );
descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
astore 4
start local 4 1: ldc Ljava/lang/Enum;
aload 1
if_acmpne 18
aload 0
getfield org.springframework.beans.TypeConverterDelegate.targetObject:Ljava/lang/Object;
ifnull 18
2: aload 2
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 5
start local 5 3: iload 5
iconst_m1
if_icmple 18
4: aload 2
iconst_0
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 6
start local 6 5: aload 2
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 7
start local 7 6: aload 0
getfield org.springframework.beans.TypeConverterDelegate.targetObject:Ljava/lang/Object;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 8
start local 8 7: aload 6
aload 8
invokestatic org.springframework.util.ClassUtils.forName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
astore 9
start local 9 8: aload 9
aload 7
invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 10
start local 10 9: aload 10
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
end local 10 end local 9 10: goto 18
11: StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Class java.lang.String java.lang.Object java.lang.Object int java.lang.String java.lang.String java.lang.ClassLoader
StackMap stack: java.lang.ClassNotFoundException
astore 9
start local 9 12: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 18
13: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Enum class ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] cannot be loaded"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 9
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 9 14: goto 18
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
start local 9 16: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 18
17: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Field ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] isn't an enum value for type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 9
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 9 end local 8 end local 7 end local 6 end local 5 18: StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Class java.lang.String java.lang.Object java.lang.Object
StackMap stack:
aload 4
aload 3
if_acmpne 26
19: aload 1
aload 2
invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 5
start local 5 20: aload 5
invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Field;)V
21: aload 5
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
end local 5 22: goto 26
23: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 24: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 26
25: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Field ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] isn't an enum value"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 26: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 27 1 requiredType Ljava/lang/Class<*>;
0 27 2 trimmedValue Ljava/lang/String;
0 27 3 currentConvertedValue Ljava/lang/Object;
1 27 4 convertedValue Ljava/lang/Object;
3 18 5 index I
5 18 6 enumType Ljava/lang/String;
6 18 7 fieldName Ljava/lang/String;
7 18 8 cl Ljava/lang/ClassLoader;
8 10 9 enumValueType Ljava/lang/Class<*>;
9 10 10 enumField Ljava/lang/reflect/Field;
12 14 9 ex Ljava/lang/ClassNotFoundException;
16 18 9 ex Ljava/lang/Throwable;
20 22 5 enumField Ljava/lang/reflect/Field;
24 26 5 ex Ljava/lang/Throwable;
Exception table:
from to target type
7 10 11 Class java.lang.ClassNotFoundException
7 10 15 Class java.lang.Throwable
19 22 23 Class java.lang.Throwable
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
MethodParameters:
Name Flags
requiredType
trimmedValue
currentConvertedValue
private java.beans.PropertyEditor findDefaultEditor(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/beans/PropertyEditor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
ifnull 5
2: aload 0
getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
aload 1
invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.getDefaultEditor:(Ljava/lang/Class;)Ljava/beans/PropertyEditor;
astore 2
3: aload 2
ifnonnull 5
ldc Ljava/lang/String;
aload 1
if_acmpeq 5
4: aload 1
invokestatic org.springframework.beans.BeanUtils.findEditorByConvention:(Ljava/lang/Class;)Ljava/beans/PropertyEditor;
astore 2
5: StackMap locals: java.beans.PropertyEditor
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 6 1 requiredType Ljava/lang/Class<*>;
1 6 2 editor Ljava/beans/PropertyEditor;
Signature: (Ljava/lang/Class<*>;)Ljava/beans/PropertyEditor;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
requiredType
private doConvertValue(, , java.lang.Class<?>, java.beans.PropertyEditor);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
astore 5
start local 5 1: aload 4
ifnull 11
aload 5
instanceof java.lang.String
ifne 11
2: aload 4
aload 5
invokeinterface java.beans.PropertyEditor.setValue:(Ljava/lang/Object;)V
3: aload 4
invokeinterface java.beans.PropertyEditor.getValue:()Ljava/lang/Object;
astore 6
start local 6 4: aload 6
aload 5
if_acmpeq 11
5: aload 6
astore 5
6: aconst_null
astore 4
end local 6 7: goto 11
8: StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Object java.lang.Object java.lang.Class java.beans.PropertyEditor java.lang.Object
StackMap stack: java.lang.Exception
astore 6
start local 6 9: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 11
10: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "PropertyEditor ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] does not support setValue call"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 6 11: StackMap locals:
StackMap stack:
aload 5
astore 6
start local 6 12: aload 3
ifnull 16
aload 3
invokevirtual java.lang.Class.isArray:()Z
ifne 16
aload 5
instanceof java.lang.String[]
ifeq 16
13: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 15
14: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Converting String array to comma-delimited String ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
15: StackMap locals: java.lang.Object
StackMap stack:
aload 5
checkcast java.lang.String[]
invokestatic org.springframework.util.StringUtils.arrayToCommaDelimitedString:([Ljava/lang/Object;)Ljava/lang/String;
astore 5
16: StackMap locals:
StackMap stack:
aload 5
instanceof java.lang.String
ifeq 24
17: aload 4
ifnull 22
18: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 20
19: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Converting String to ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] using property editor ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
20: StackMap locals:
StackMap stack:
aload 5
checkcast java.lang.String
astore 7
start local 7 21: aload 0
aload 1
aload 7
aload 4
invokevirtual org.springframework.beans.TypeConverterDelegate.doConvertTextValue:(Ljava/lang/Object;Ljava/lang/String;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
areturn
end local 7 22: StackMap locals:
StackMap stack:
ldc Ljava/lang/String;
aload 3
if_acmpne 24
23: aload 5
astore 6
24: StackMap locals:
StackMap stack:
aload 6
areturn
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 25 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 25 1 oldValue Ljava/lang/Object;
0 25 2 newValue Ljava/lang/Object;
0 25 3 requiredType Ljava/lang/Class<*>;
0 25 4 editor Ljava/beans/PropertyEditor;
1 25 5 convertedValue Ljava/lang/Object;
4 7 6 newConvertedValue Ljava/lang/Object;
9 11 6 ex Ljava/lang/Exception;
12 25 6 returnValue Ljava/lang/Object;
21 22 7 newTextValue Ljava/lang/String;
Exception table:
from to target type
2 7 8 Class java.lang.Exception
Signature: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
org.springframework.lang.Nullable()
2:
org.springframework.lang.Nullable()
3:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
oldValue
newValue
requiredType
editor
private java.lang.Object doConvertTextValue(java.lang.Object, java.lang.String, java.beans.PropertyEditor);
descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
aload 1
invokeinterface java.beans.PropertyEditor.setValue:(Ljava/lang/Object;)V
1: goto 5
2: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 3: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 5
4: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "PropertyEditor ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] does not support setValue call"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 5: StackMap locals:
StackMap stack:
aload 3
aload 2
invokeinterface java.beans.PropertyEditor.setAsText:(Ljava/lang/String;)V
6: aload 3
invokeinterface java.beans.PropertyEditor.getValue:()Ljava/lang/Object;
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/TypeConverterDelegate;
0 7 1 oldValue Ljava/lang/Object;
0 7 2 newTextValue Ljava/lang/String;
0 7 3 editor Ljava/beans/PropertyEditor;
3 5 4 ex Ljava/lang/Exception;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
2:
MethodParameters:
Name Flags
oldValue
newTextValue
editor
private convertToTypedArray(, java.lang.String, java.lang.Class<?>);
descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
instanceof java.util.Collection
ifeq 13
1: aload 1
checkcast java.util.Collection
astore 4
start local 4 2: aload 3
aload 4
invokeinterface java.util.Collection.size:()I
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
astore 5
start local 5 3: iconst_0
istore 6
start local 6 4: aload 4
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
start local 7 5: goto 11
6: StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Object java.lang.String java.lang.Class java.util.Collection java.lang.Object int java.util.Iterator
StackMap stack:
aload 0
7: aload 0
aload 2
iload 6
invokevirtual org.springframework.beans.TypeConverterDelegate.buildIndexedPropertyName:(Ljava/lang/String;I)Ljava/lang/String;
aconst_null
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
aload 3
8: invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 8
start local 8 9: aload 5
iload 6
aload 8
invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
end local 8 10: iinc 6 1
StackMap locals:
StackMap stack:
11: aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 7 12: aload 5
areturn
end local 6 end local 5 end local 4 13: StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Object java.lang.String java.lang.Class
StackMap stack:
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 28
14: aload 3
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 17
15: aload 0
getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
aload 3
aload 2
invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.hasCustomEditorForElement:(Ljava/lang/Class;Ljava/lang/String;)Z
ifne 17
16: aload 1
areturn
17: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
istore 4
start local 4 18: aload 3
iload 4
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
astore 5
start local 5 19: iconst_0
istore 6
start local 6 20: goto 26
21: StackMap locals: int java.lang.Object int
StackMap stack:
aload 0
22: aload 0
aload 2
iload 6
invokevirtual org.springframework.beans.TypeConverterDelegate.buildIndexedPropertyName:(Ljava/lang/String;I)Ljava/lang/String;
aconst_null
aload 1
iload 6
invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
aload 3
23: invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 7
start local 7 24: aload 5
iload 6
aload 7
invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
end local 7 25: iinc 6 1
StackMap locals:
StackMap stack:
26: iload 6
iload 4
if_icmplt 21
end local 6 27: aload 5
areturn
end local 5 end local 4 28: StackMap locals:
StackMap stack:
aload 3
iconst_1
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
astore 4
start local 4 29: aload 0
30: aload 0
aload 2
iconst_0
invokevirtual org.springframework.beans.TypeConverterDelegate.buildIndexedPropertyName:(Ljava/lang/String;I)Ljava/lang/String;
aconst_null
aload 1
aload 3
31: invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 5
start local 5 32: aload 4
iconst_0
aload 5
invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
33: aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 34 1 input Ljava/lang/Object;
0 34 2 propertyName Ljava/lang/String;
0 34 3 componentType Ljava/lang/Class<*>;
2 13 4 coll Ljava/util/Collection<*>;
3 13 5 result Ljava/lang/Object;
4 13 6 i I
5 12 7 it Ljava/util/Iterator<*>;
9 10 8 value Ljava/lang/Object;
18 28 4 arrayLength I
19 28 5 result Ljava/lang/Object;
20 27 6 i I
24 25 7 value Ljava/lang/Object;
29 34 4 result Ljava/lang/Object;
32 34 5 value Ljava/lang/Object;
Signature: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/Object;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
MethodParameters:
Name Flags
input
propertyName
componentType
private java.util.Collection<?> convertToTypedCollection(java.util.Collection<?>, java.lang.String, java.lang.Class<?>, org.springframework.core.convert.TypeDescriptor);
descriptor: (Ljava/util/Collection;Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Collection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=15, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: ldc Ljava/util/Collection;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 3
invokestatic org.springframework.core.CollectionFactory.isApproximableCollectionType:(Ljava/lang/Class;)Z
istore 5
start local 5 3: iload 5
ifne 9
aload 0
aload 3
invokevirtual org.springframework.beans.TypeConverterDelegate.canCreateCopy:(Ljava/lang/Class;)Z
ifne 9
4: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 8
5: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Custom Collection type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc "] does not allow for creating a copy - injecting original Collection as-is"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
8: StackMap locals: int
StackMap stack:
aload 1
areturn
9: StackMap locals:
StackMap stack:
aload 3
aload 1
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
istore 6
start local 6 10: aload 4
ifnull 11
aload 4
invokevirtual org.springframework.core.convert.TypeDescriptor.getElementTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
goto 12
StackMap locals: int
StackMap stack:
11: aconst_null
StackMap locals:
StackMap stack: org.springframework.core.convert.TypeDescriptor
12: astore 7
start local 7 13: aload 7
ifnonnull 16
iload 6
ifeq 16
14: aload 0
getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
aconst_null
aload 2
invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.hasCustomEditorForElement:(Ljava/lang/Class;Ljava/lang/String;)Z
ifne 16
15: aload 1
areturn
16: StackMap locals: org.springframework.core.convert.TypeDescriptor
StackMap stack:
aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
start local 8 17: goto 24
end local 8 18: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
start local 9 19: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 23
20: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Cannot access Collection of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: ldc "] - injecting original Collection as-is: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
22: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
23: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor top java.lang.Throwable
StackMap stack:
aload 1
areturn
end local 9 start local 8 24: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator
StackMap stack:
iload 5
ifeq 27
25: aload 1
aload 1
invokeinterface java.util.Collection.size:()I
invokestatic org.springframework.core.CollectionFactory.createApproximateCollection:(Ljava/lang/Object;I)Ljava/util/Collection;
astore 9
start local 9 26: goto 36
end local 9 27: StackMap locals:
StackMap stack:
aload 3
iconst_0
anewarray java.lang.Class
invokestatic org.springframework.util.ReflectionUtils.accessibleConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Collection
28: astore 9
start local 9 29: goto 36
end local 9 30: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
start local 10 31: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 35
32: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Cannot create copy of Collection type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: ldc "] - injecting original Collection as-is: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
35: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator top java.lang.Throwable
StackMap stack:
aload 1
areturn
end local 10 start local 9 36: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Collection
StackMap stack:
iconst_0
istore 10
start local 10 37: goto 57
38: StackMap locals: int
StackMap stack:
aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 11
start local 11 39: aload 0
aload 2
iload 10
invokevirtual org.springframework.beans.TypeConverterDelegate.buildIndexedPropertyName:(Ljava/lang/String;I)Ljava/lang/String;
astore 12
start local 12 40: aload 0
aload 12
aconst_null
aload 11
41: aload 7
ifnull 42
aload 7
invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
goto 43
StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Collection int java.lang.Object java.lang.String
StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object
42: aconst_null
StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Collection int java.lang.Object java.lang.String
StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object java.lang.Class
43: aload 7
44: invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
astore 13
start local 13 45: aload 9
aload 13
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
46: goto 53
47: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Collection int java.lang.Object java.lang.String java.lang.Object
StackMap stack: java.lang.Throwable
astore 14
start local 14 48: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 52
49: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Collection type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
50: ldc "] seems to be read-only - injecting original Collection as-is: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
51: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
52: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
areturn
end local 14 53: StackMap locals:
StackMap stack:
iload 6
ifeq 54
aload 11
aload 13
if_acmpne 54
iconst_1
goto 55
StackMap locals:
StackMap stack:
54: iconst_0
StackMap locals:
StackMap stack: int
55: istore 6
end local 13 end local 12 end local 11 56: iinc 10 1
StackMap locals:
StackMap stack:
57: aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 38
58: iload 6
ifeq 59
aload 1
goto 60
StackMap locals:
StackMap stack:
59: aload 9
StackMap locals:
StackMap stack: java.util.Collection
60: 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 61 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 61 1 original Ljava/util/Collection<*>;
0 61 2 propertyName Ljava/lang/String;
0 61 3 requiredType Ljava/lang/Class<*>;
0 61 4 typeDescriptor Lorg/springframework/core/convert/TypeDescriptor;
3 61 5 approximable Z
10 61 6 originalAllowed Z
13 61 7 elementType Lorg/springframework/core/convert/TypeDescriptor;
17 18 8 it Ljava/util/Iterator<*>;
24 61 8 it Ljava/util/Iterator<*>;
19 24 9 ex Ljava/lang/Throwable;
26 27 9 convertedCopy Ljava/util/Collection<Ljava/lang/Object;>;
29 30 9 convertedCopy Ljava/util/Collection<Ljava/lang/Object;>;
36 61 9 convertedCopy Ljava/util/Collection<Ljava/lang/Object;>;
31 36 10 ex Ljava/lang/Throwable;
37 61 10 i I
39 56 11 element Ljava/lang/Object;
40 56 12 indexedPropertyName Ljava/lang/String;
45 56 13 convertedElement Ljava/lang/Object;
48 53 14 ex Ljava/lang/Throwable;
Exception table:
from to target type
16 17 18 Class java.lang.Throwable
24 29 30 Class java.lang.Throwable
45 46 47 Class java.lang.Throwable
Signature: (Ljava/util/Collection<*>;Ljava/lang/String;Ljava/lang/Class<*>;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Collection<*>;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
3:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
original
propertyName
requiredType
typeDescriptor
private java.util.Map<?, ?> convertToTypedMap(java.util.Map<?, ?>, java.lang.String, java.lang.Class<?>, org.springframework.core.convert.TypeDescriptor);
descriptor: (Ljava/util/Map;Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=18, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: ldc Ljava/util/Map;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 3
invokestatic org.springframework.core.CollectionFactory.isApproximableMapType:(Ljava/lang/Class;)Z
istore 5
start local 5 3: iload 5
ifne 9
aload 0
aload 3
invokevirtual org.springframework.beans.TypeConverterDelegate.canCreateCopy:(Ljava/lang/Class;)Z
ifne 9
4: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 8
5: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Custom Map type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc "] does not allow for creating a copy - injecting original Map as-is"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
8: StackMap locals: int
StackMap stack:
aload 1
areturn
9: StackMap locals:
StackMap stack:
aload 3
aload 1
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
istore 6
start local 6 10: aload 4
ifnull 11
aload 4
invokevirtual org.springframework.core.convert.TypeDescriptor.getMapKeyTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
goto 12
StackMap locals: int
StackMap stack:
11: aconst_null
StackMap locals:
StackMap stack: org.springframework.core.convert.TypeDescriptor
12: astore 7
start local 7 13: aload 4
ifnull 14
aload 4
invokevirtual org.springframework.core.convert.TypeDescriptor.getMapValueTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
goto 15
StackMap locals: org.springframework.core.convert.TypeDescriptor
StackMap stack:
14: aconst_null
StackMap locals:
StackMap stack: org.springframework.core.convert.TypeDescriptor
15: astore 8
start local 8 16: aload 7
ifnonnull 19
aload 8
ifnonnull 19
iload 6
ifeq 19
17: aload 0
getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
aconst_null
aload 2
invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.hasCustomEditorForElement:(Ljava/lang/Class;Ljava/lang/String;)Z
ifne 19
18: aload 1
areturn
19: StackMap locals: org.springframework.core.convert.TypeDescriptor
StackMap stack:
aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
start local 9 20: goto 27
end local 9 21: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
start local 10 22: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 26
23: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Cannot access Map of type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: ldc "] - injecting original Map as-is: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
26: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor top java.lang.Throwable
StackMap stack:
aload 1
areturn
end local 10 start local 9 27: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator
StackMap stack:
iload 5
ifeq 30
28: aload 1
aload 1
invokeinterface java.util.Map.size:()I
invokestatic org.springframework.core.CollectionFactory.createApproximateMap:(Ljava/lang/Object;I)Ljava/util/Map;
astore 10
start local 10 29: goto 64
end local 10 30: StackMap locals:
StackMap stack:
aload 3
iconst_0
anewarray java.lang.Class
invokestatic org.springframework.util.ReflectionUtils.accessibleConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
31: astore 10
start local 10 32: goto 64
end local 10 33: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
start local 11 34: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 38
35: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Cannot create copy of Map type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: ldc "] - injecting original Map as-is: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
38: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator top java.lang.Throwable
StackMap stack:
aload 1
areturn
end local 11 start local 10 39: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map
StackMap stack:
aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 11
start local 11 40: aload 11
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
astore 12
start local 12 41: aload 11
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
astore 13
start local 13 42: aload 0
aload 2
aload 12
invokevirtual org.springframework.beans.TypeConverterDelegate.buildKeyedPropertyName:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
astore 14
start local 14 43: aload 0
aload 14
aconst_null
aload 12
44: aload 7
ifnull 45
aload 7
invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
goto 46
StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String
StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object
45: aconst_null
StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String
StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object java.lang.Class
46: aload 7
47: invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
astore 15
start local 15 48: aload 0
aload 14
aconst_null
aload 13
49: aload 8
ifnull 50
aload 8
invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
goto 51
StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String java.lang.Object
StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object
50: aconst_null
StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String java.lang.Object
StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object java.lang.Class
51: aload 8
52: invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
astore 16
start local 16 53: aload 10
aload 15
aload 16
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
54: goto 61
55: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
astore 17
start local 17 56: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 60
57: getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Map type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
58: ldc "] seems to be read-only - injecting original Map as-is: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 17
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
59: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
60: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
areturn
end local 17 61: StackMap locals:
StackMap stack:
iload 6
ifeq 62
aload 12
aload 15
if_acmpne 62
aload 13
aload 16
if_acmpne 62
iconst_1
goto 63
StackMap locals:
StackMap stack:
62: iconst_0
StackMap locals:
StackMap stack: int
63: istore 6
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 64: StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 39
65: iload 6
ifeq 66
aload 1
goto 67
StackMap locals:
StackMap stack:
66: aload 10
StackMap locals:
StackMap stack: java.util.Map
67: 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 68 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 68 1 original Ljava/util/Map<**>;
0 68 2 propertyName Ljava/lang/String;
0 68 3 requiredType Ljava/lang/Class<*>;
0 68 4 typeDescriptor Lorg/springframework/core/convert/TypeDescriptor;
3 68 5 approximable Z
10 68 6 originalAllowed Z
13 68 7 keyType Lorg/springframework/core/convert/TypeDescriptor;
16 68 8 valueType Lorg/springframework/core/convert/TypeDescriptor;
20 21 9 it Ljava/util/Iterator<*>;
27 68 9 it Ljava/util/Iterator<*>;
22 27 10 ex Ljava/lang/Throwable;
29 30 10 convertedCopy Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
32 33 10 convertedCopy Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
39 68 10 convertedCopy Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
34 39 11 ex Ljava/lang/Throwable;
40 64 11 entry Ljava/util/Map$Entry<**>;
41 64 12 key Ljava/lang/Object;
42 64 13 value Ljava/lang/Object;
43 64 14 keyedPropertyName Ljava/lang/String;
48 64 15 convertedKey Ljava/lang/Object;
53 64 16 convertedValue Ljava/lang/Object;
56 61 17 ex Ljava/lang/Throwable;
Exception table:
from to target type
19 20 21 Class java.lang.Throwable
27 32 33 Class java.lang.Throwable
53 54 55 Class java.lang.Throwable
Signature: (Ljava/util/Map<**>;Ljava/lang/String;Ljava/lang/Class<*>;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Map<**>;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
3:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
original
propertyName
requiredType
typeDescriptor
private java.lang.String buildIndexedPropertyName(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 2
1: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 3
2: StackMap locals:
StackMap stack:
aconst_null
3: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 4 1 propertyName Ljava/lang/String;
0 4 2 index I
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
propertyName
index
private java.lang.String buildKeyedPropertyName(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 2
1: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 3
2: StackMap locals:
StackMap stack:
aconst_null
3: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 4 1 propertyName Ljava/lang/String;
0 4 2 key Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
propertyName
key
private boolean canCreateCopy(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.isInterface:()Z
ifne 3
aload 1
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
ifne 3
1: aload 1
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifeq 3
aload 1
iconst_0
anewarray java.lang.Class
invokestatic org.springframework.util.ClassUtils.hasConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Z
ifeq 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/TypeConverterDelegate;
0 4 1 requiredType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
requiredType
}
SourceFile: "TypeConverterDelegate.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map