final class org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler<A extends java.lang.annotation.Annotation> implements java.lang.reflect.InvocationHandler
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler
super_class: java.lang.Object
{
private final org.springframework.core.annotation.MergedAnnotation<?> annotation;
descriptor: Lorg/springframework/core/annotation/MergedAnnotation;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/springframework/core/annotation/MergedAnnotation<*>;
private final java.lang.Class<A> type;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<TA;>;
private final org.springframework.core.annotation.AttributeMethods attributes;
descriptor: Lorg/springframework/core/annotation/AttributeMethods;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.String, java.lang.Object> valueCache;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
private volatile java.lang.Integer hashCode;
descriptor: Ljava/lang/Integer;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private volatile java.lang.String string;
descriptor: Ljava/lang/String;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private void <init>(org.springframework.core.annotation.MergedAnnotation<A>, java.lang.Class<A>);
descriptor: (Lorg/springframework/core/annotation/MergedAnnotation;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, 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
new java.util.concurrent.ConcurrentHashMap
dup
bipush 8
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.valueCache:Ljava/util/Map;
2: aload 1
ldc "MergedAnnotation must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
3: aload 2
ldc "Type must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
4: aload 2
invokevirtual java.lang.Class.isAnnotation:()Z
ldc "Type must be an annotation"
invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
5: aload 0
aload 1
putfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.annotation:Lorg/springframework/core/annotation/MergedAnnotation;
6: aload 0
aload 2
putfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.type:Ljava/lang/Class;
7: aload 0
aload 2
invokestatic org.springframework.core.annotation.AttributeMethods.forAnnotationType:(Ljava/lang/Class;)Lorg/springframework/core/annotation/AttributeMethods;
putfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.attributes:Lorg/springframework/core/annotation/AttributeMethods;
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 9 1 annotation Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
0 9 2 type Ljava/lang/Class<TA;>;
Signature: (Lorg/springframework/core/annotation/MergedAnnotation<TA;>;Ljava/lang/Class<TA;>;)V
MethodParameters:
Name Flags
annotation
type
public java.lang.Object invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]);
descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic org.springframework.util.ReflectionUtils.isEqualsMethod:(Ljava/lang/reflect/Method;)Z
ifeq 2
1: aload 0
aload 3
iconst_0
aaload
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.annotationEquals:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokestatic org.springframework.util.ReflectionUtils.isHashCodeMethod:(Ljava/lang/reflect/Method;)Z
ifeq 4
3: aload 0
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.annotationHashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokestatic org.springframework.util.ReflectionUtils.isToStringMethod:(Ljava/lang/reflect/Method;)Z
ifeq 6
5: aload 0
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.annotationToString:()Ljava/lang/String;
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.isAnnotationTypeMethod:(Ljava/lang/reflect/Method;)Z
ifeq 8
7: aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.type:Ljava/lang/Class;
areturn
8: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.attributes:Lorg/springframework/core/annotation/AttributeMethods;
aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual org.springframework.core.annotation.AttributeMethods.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpeq 10
9: aload 0
aload 2
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.getAttributeValue:(Ljava/lang/reflect/Method;)Ljava/lang/Object;
areturn
10: StackMap locals:
StackMap stack:
new org.springframework.core.annotation.AnnotationConfigurationException
dup
11: ldc "Method [%s] is unsupported for synthesized annotation type [%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.type:Ljava/lang/Class;
aastore
12: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.springframework.core.annotation.AnnotationConfigurationException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 13 1 proxy Ljava/lang/Object;
0 13 2 method Ljava/lang/reflect/Method;
0 13 3 args [Ljava/lang/Object;
MethodParameters:
Name Flags
proxy
method
args
private boolean isAnnotationTypeMethod(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)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.reflect.Method.getName:()Ljava/lang/String;
ldc "annotationType"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 1
aload 1
invokevirtual java.lang.reflect.Method.getParameterCount:()I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 2 1 method Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
method
private boolean annotationEquals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.type:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 5: goto 12
6: StackMap locals: int
StackMap stack:
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.attributes:Lorg/springframework/core/annotation/AttributeMethods;
iload 2
invokevirtual org.springframework.core.annotation.AttributeMethods.get:(I)Ljava/lang/reflect/Method;
astore 3
start local 3 7: aload 0
aload 3
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.getAttributeValue:(Ljava/lang/reflect/Method;)Ljava/lang/Object;
astore 4
start local 4 8: aload 3
aload 1
invokestatic org.springframework.util.ReflectionUtils.invokeMethod:(Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 9: aload 4
aload 5
invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 11
10: iconst_0
ireturn
end local 5 end local 4 end local 3 11: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
12: iload 2
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.attributes:Lorg/springframework/core/annotation/AttributeMethods;
invokevirtual org.springframework.core.annotation.AttributeMethods.size:()I
if_icmplt 6
end local 2 13: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 14 1 other Ljava/lang/Object;
5 13 2 i I
7 11 3 attribute Ljava/lang/reflect/Method;
8 11 4 thisValue Ljava/lang/Object;
9 11 5 otherValue Ljava/lang/Object;
MethodParameters:
Name Flags
other
private int annotationHashCode();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.hashCode:Ljava/lang/Integer;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: aload 0
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.computeHashCode:()Ljava/lang/Integer;
astore 1
3: aload 0
aload 1
putfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.hashCode:Ljava/lang/Integer;
4: StackMap locals: java.lang.Integer
StackMap stack:
aload 1
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
1 5 1 hashCode Ljava/lang/Integer;
private java.lang.Integer computeHashCode();
descriptor: ()Ljava/lang/Integer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 7
3: StackMap locals: int int
StackMap stack:
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.attributes:Lorg/springframework/core/annotation/AttributeMethods;
iload 2
invokevirtual org.springframework.core.annotation.AttributeMethods.get:(I)Ljava/lang/reflect/Method;
astore 3
start local 3 4: aload 0
aload 3
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.getAttributeValue:(Ljava/lang/reflect/Method;)Ljava/lang/Object;
astore 4
start local 4 5: iload 1
bipush 127
aload 3
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
imul
aload 0
aload 4
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.getValueHashCode:(Ljava/lang/Object;)I
ixor
iadd
istore 1
end local 4 end local 3 6: iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.attributes:Lorg/springframework/core/annotation/AttributeMethods;
invokevirtual org.springframework.core.annotation.AttributeMethods.size:()I
if_icmplt 3
end local 2 8: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
1 9 1 hashCode I
2 8 2 i I
4 6 3 attribute Ljava/lang/reflect/Method;
5 6 4 value Ljava/lang/Object;
private int getValueHashCode(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof boolean[]
ifeq 2
1: aload 1
checkcast boolean[]
invokestatic java.util.Arrays.hashCode:([Z)I
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof byte[]
ifeq 4
3: aload 1
checkcast byte[]
invokestatic java.util.Arrays.hashCode:([B)I
ireturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof char[]
ifeq 6
5: aload 1
checkcast char[]
invokestatic java.util.Arrays.hashCode:([C)I
ireturn
6: StackMap locals:
StackMap stack:
aload 1
instanceof double[]
ifeq 8
7: aload 1
checkcast double[]
invokestatic java.util.Arrays.hashCode:([D)I
ireturn
8: StackMap locals:
StackMap stack:
aload 1
instanceof float[]
ifeq 10
9: aload 1
checkcast float[]
invokestatic java.util.Arrays.hashCode:([F)I
ireturn
10: StackMap locals:
StackMap stack:
aload 1
instanceof int[]
ifeq 12
11: aload 1
checkcast int[]
invokestatic java.util.Arrays.hashCode:([I)I
ireturn
12: StackMap locals:
StackMap stack:
aload 1
instanceof long[]
ifeq 14
13: aload 1
checkcast long[]
invokestatic java.util.Arrays.hashCode:([J)I
ireturn
14: StackMap locals:
StackMap stack:
aload 1
instanceof short[]
ifeq 16
15: aload 1
checkcast short[]
invokestatic java.util.Arrays.hashCode:([S)I
ireturn
16: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Object[]
ifeq 18
17: aload 1
checkcast java.lang.Object[]
invokestatic java.util.Arrays.hashCode:([Ljava/lang/Object;)I
ireturn
18: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.hashCode:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 19 1 value Ljava/lang/Object;
MethodParameters:
Name Flags
value
private java.lang.String annotationToString();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.string:Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnonnull 16
2: new java.lang.StringBuilder
dup
ldc "@"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.type:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 12
5: StackMap locals: java.lang.String java.lang.StringBuilder int
StackMap stack:
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.attributes:Lorg/springframework/core/annotation/AttributeMethods;
iload 3
invokevirtual org.springframework.core.annotation.AttributeMethods.get:(I)Ljava/lang/reflect/Method;
astore 4
start local 4 6: iload 3
ifle 8
7: aload 2
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 2
aload 4
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 2
ldc "="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 2
aload 0
aload 0
aload 4
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.getAttributeValue:(Ljava/lang/reflect/Method;)Ljava/lang/Object;
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.toString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 4 11: iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.attributes:Lorg/springframework/core/annotation/AttributeMethods;
invokevirtual org.springframework.core.annotation.AttributeMethods.size:()I
if_icmplt 5
end local 3 13: aload 2
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
15: aload 0
aload 1
putfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.string:Ljava/lang/String;
end local 2 16: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
1 17 1 string Ljava/lang/String;
3 16 2 builder Ljava/lang/StringBuilder;
4 13 3 i I
6 11 4 attribute Ljava/lang/reflect/Method;
private java.lang.String toString(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.lang.Class
ifeq 2
1: aload 1
checkcast java.lang.Class
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 13
3: new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 10
6: StackMap locals: java.lang.StringBuilder int
StackMap stack:
iload 3
ifle 8
7: aload 2
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 2
aload 0
aload 1
iload 3
invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.toString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 1
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
if_icmplt 6
end local 3 11: aload 2
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 13: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 14 1 value Ljava/lang/Object;
4 13 2 builder Ljava/lang/StringBuilder;
5 11 3 i I
MethodParameters:
Name Flags
value
private java.lang.Object getAttributeValue(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.valueCache:Ljava/util/Map;
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 0
aload 1
invokedynamic apply(Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler;Ljava/lang/reflect/Method;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
org/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler.lambda$0(Ljava/lang/reflect/Method;Ljava/lang/String;)Ljava/lang/Object; (7)
(Ljava/lang/String;)Ljava/lang/Object;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 3
aload 2
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
ifle 3
2: aload 0
aload 2
invokevirtual org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.cloneArray:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 4 1 method Ljava/lang/reflect/Method;
1 4 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
method
private java.lang.Object cloneArray(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof boolean[]
ifeq 2
1: aload 1
checkcast boolean[]
invokevirtual boolean[].clone:()Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof byte[]
ifeq 4
3: aload 1
checkcast byte[]
invokevirtual byte[].clone:()Ljava/lang/Object;
areturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof char[]
ifeq 6
5: aload 1
checkcast char[]
invokevirtual char[].clone:()Ljava/lang/Object;
areturn
6: StackMap locals:
StackMap stack:
aload 1
instanceof double[]
ifeq 8
7: aload 1
checkcast double[]
invokevirtual double[].clone:()Ljava/lang/Object;
areturn
8: StackMap locals:
StackMap stack:
aload 1
instanceof float[]
ifeq 10
9: aload 1
checkcast float[]
invokevirtual float[].clone:()Ljava/lang/Object;
areturn
10: StackMap locals:
StackMap stack:
aload 1
instanceof int[]
ifeq 12
11: aload 1
checkcast int[]
invokevirtual int[].clone:()Ljava/lang/Object;
areturn
12: StackMap locals:
StackMap stack:
aload 1
instanceof long[]
ifeq 14
13: aload 1
checkcast long[]
invokevirtual long[].clone:()Ljava/lang/Object;
areturn
14: StackMap locals:
StackMap stack:
aload 1
instanceof short[]
ifeq 16
15: aload 1
checkcast short[]
invokevirtual short[].clone:()Ljava/lang/Object;
areturn
16: StackMap locals:
StackMap stack:
aload 1
checkcast java.lang.Object[]
invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 17 1 array Ljava/lang/Object;
MethodParameters:
Name Flags
array
static <A extends java.lang.annotation.Annotation> A createProxy(org.springframework.core.annotation.MergedAnnotation<A>, java.lang.Class<A>);
descriptor: (Lorg/springframework/core/annotation/MergedAnnotation;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 2
start local 2 1: new org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler
dup
aload 0
aload 1
invokespecial org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.<init>:(Lorg/springframework/core/annotation/MergedAnnotation;Ljava/lang/Class;)V
astore 3
start local 3 2: aload 2
ldc Lorg/springframework/core/annotation/SynthesizedAnnotation;
invokestatic org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.isVisible:(Ljava/lang/ClassLoader;Ljava/lang/Class;)Z
ifeq 4
3: iconst_2
anewarray java.lang.Class
dup
iconst_0
aload 1
aastore
dup
iconst_1
ldc Lorg/springframework/core/annotation/SynthesizedAnnotation;
aastore
goto 5
StackMap locals: java.lang.ClassLoader java.lang.reflect.InvocationHandler
StackMap stack:
4: iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 1
aastore
5: StackMap locals:
StackMap stack: java.lang.Class[]
astore 4
start local 4 6: aload 2
aload 4
aload 3
invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
checkcast java.lang.annotation.Annotation
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 annotation Lorg/springframework/core/annotation/MergedAnnotation<TA;>;
0 7 1 type Ljava/lang/Class<TA;>;
1 7 2 classLoader Ljava/lang/ClassLoader;
2 7 3 handler Ljava/lang/reflect/InvocationHandler;
6 7 4 interfaces [Ljava/lang/Class;
Signature: <A::Ljava/lang/annotation/Annotation;>(Lorg/springframework/core/annotation/MergedAnnotation<TA;>;Ljava/lang/Class<TA;>;)TA;
MethodParameters:
Name Flags
annotation
type
private static boolean isVisible(java.lang.ClassLoader, java.lang.Class<?>);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
iconst_0
aload 0
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
aload 1
if_acmpne 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
4: ireturn
5: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 classLoader Ljava/lang/ClassLoader;
0 7 1 interfaceClass Ljava/lang/Class<*>;
Exception table:
from to target type
2 4 5 Class java.lang.ClassNotFoundException
Signature: (Ljava/lang/ClassLoader;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
classLoader
interfaceClass
private java.lang.Object lambda$0(java.lang.reflect.Method, java.lang.String);
descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 2 0: aload 1
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
invokestatic org.springframework.util.ClassUtils.resolvePrimitiveIfNecessary:(Ljava/lang/Class;)Ljava/lang/Class;
astore 3
start local 3 1: aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.annotation:Lorg/springframework/core/annotation/MergedAnnotation;
aload 2
aload 3
invokeinterface org.springframework.core.annotation.MergedAnnotation.getValue:(Ljava/lang/String;Ljava/lang/Class;)Ljava/util/Optional;
2: aload 0
aload 2
invokedynamic get(Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler;Ljava/lang/String;)Ljava/util/function/Supplier;
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/core/annotation/SynthesizedMergedAnnotationInvocationHandler.lambda$1(Ljava/lang/String;)Ljava/util/NoSuchElementException; (7)
()Ljava/util/NoSuchElementException;
3: invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
0 4 2 attributeName Ljava/lang/String;
1 4 3 type Ljava/lang/Class<*>;
private java.util.NoSuchElementException lambda$1(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/NoSuchElementException;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=2
start local 0 0: new java.util.NoSuchElementException
dup
new java.lang.StringBuilder
dup
ldc "No value found for attribute named '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc "' in merged annotation "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.springframework.core.annotation.SynthesizedMergedAnnotationInvocationHandler.annotation:Lorg/springframework/core/annotation/MergedAnnotation;
invokeinterface org.springframework.core.annotation.MergedAnnotation.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/core/annotation/SynthesizedMergedAnnotationInvocationHandler<TA;>;
}
Signature: <A::Ljava/lang/annotation/Annotation;>Ljava/lang/Object;Ljava/lang/reflect/InvocationHandler;
SourceFile: "SynthesizedMergedAnnotationInvocationHandler.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles