class org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry
super_class: java.lang.Object
{
private final java.util.Map<T, org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration<T>> registry;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<TT;Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistration<TT;>;>;
private final org.springframework.util.MultiValueMap<java.lang.String, T> pathLookup;
descriptor: Lorg/springframework/util/MultiValueMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/springframework/util/MultiValueMap<Ljava/lang/String;TT;>;
private final java.util.Map<java.lang.String, java.util.List<org.springframework.web.method.HandlerMethod>> nameLookup;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lorg/springframework/web/method/HandlerMethod;>;>;
private final java.util.Map<org.springframework.web.method.HandlerMethod, org.springframework.web.cors.CorsConfiguration> corsLookup;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/springframework/web/method/HandlerMethod;Lorg/springframework/web/cors/CorsConfiguration;>;
private final java.util.concurrent.locks.ReentrantReadWriteLock readWriteLock;
descriptor: Ljava/util/concurrent/locks/ReentrantReadWriteLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.springframework.web.servlet.handler.AbstractHandlerMethodMapping this$0;
descriptor: Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(org.springframework.web.servlet.handler.AbstractHandlerMethodMapping);
descriptor: (Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.this$0:Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.registry:Ljava/util/Map;
2: aload 0
new org.springframework.util.LinkedMultiValueMap
dup
invokespecial org.springframework.util.LinkedMultiValueMap.<init>:()V
putfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.pathLookup:Lorg/springframework/util/MultiValueMap;
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.nameLookup:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.corsLookup:Ljava/util/Map;
5: aload 0
new java.util.concurrent.locks.ReentrantReadWriteLock
dup
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
putfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
MethodParameters:
Name Flags
this$0 final
public java.util.Map<T, org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration<T>> getRegistrations();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.registry:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
Signature: ()Ljava/util/Map<TT;Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistration<TT;>;>;
public java.util.List<T> getMappingsByDirectPath(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.pathLookup:Lorg/springframework/util/MultiValueMap;
aload 1
invokeinterface org.springframework.util.MultiValueMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
0 1 1 urlPath Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/List<TT;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
urlPath
public java.util.List<org.springframework.web.method.HandlerMethod> getHandlerMethodsByMappingName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.nameLookup:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
0 1 1 mappingName Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/List<Lorg/springframework/web/method/HandlerMethod;>;
MethodParameters:
Name Flags
mappingName
public org.springframework.web.cors.CorsConfiguration getCorsConfiguration(org.springframework.web.method.HandlerMethod);
descriptor: (Lorg/springframework/web/method/HandlerMethod;)Lorg/springframework/web/cors/CorsConfiguration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.web.method.HandlerMethod.getResolvedFromHandlerMethod:()Lorg/springframework/web/method/HandlerMethod;
astore 2
start local 2 1: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.corsLookup:Ljava/util/Map;
aload 2
ifnull 2
aload 2
goto 3
StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry org.springframework.web.method.HandlerMethod org.springframework.web.method.HandlerMethod
StackMap stack: java.util.Map
2: aload 1
StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry org.springframework.web.method.HandlerMethod org.springframework.web.method.HandlerMethod
StackMap stack: java.util.Map org.springframework.web.method.HandlerMethod
3: invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.web.cors.CorsConfiguration
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
0 4 1 handlerMethod Lorg/springframework/web/method/HandlerMethod;
1 4 2 original Lorg/springframework/web/method/HandlerMethod;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
handlerMethod
public void acquireReadLock();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
public void releaseReadLock();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
public void register(T, , java.lang.reflect.Method);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Method;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.this$0:Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping;
aload 2
aload 3
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.createHandlerMethod:(Ljava/lang/Object;Ljava/lang/reflect/Method;)Lorg/springframework/web/method/HandlerMethod;
astore 4
start local 4 2: aload 0
aload 4
aload 1
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.validateMethodMapping:(Lorg/springframework/web/method/HandlerMethod;Ljava/lang/Object;)V
3: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.this$0:Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping;
aload 1
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getDirectPaths:(Ljava/lang/Object;)Ljava/util/Set;
astore 5
start local 5 4: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 7
StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry java.lang.Object java.lang.Object java.lang.reflect.Method org.springframework.web.method.HandlerMethod java.util.Set top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 6: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.pathLookup:Lorg/springframework/util/MultiValueMap;
aload 6
aload 1
invokeinterface org.springframework.util.MultiValueMap.add:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 6 7: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aconst_null
astore 6
start local 6 9: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.this$0:Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping;
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getNamingStrategy:()Lorg/springframework/web/servlet/handler/HandlerMethodMappingNamingStrategy;
ifnull 12
10: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.this$0:Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping;
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getNamingStrategy:()Lorg/springframework/web/servlet/handler/HandlerMethodMappingNamingStrategy;
aload 4
aload 1
invokeinterface org.springframework.web.servlet.handler.HandlerMethodMappingNamingStrategy.getName:(Lorg/springframework/web/method/HandlerMethod;Ljava/lang/Object;)Ljava/lang/String;
astore 6
11: aload 0
aload 6
aload 4
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.addMappingName:(Ljava/lang/String;Lorg/springframework/web/method/HandlerMethod;)V
12: StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry java.lang.Object java.lang.Object java.lang.reflect.Method org.springframework.web.method.HandlerMethod java.util.Set java.lang.String
StackMap stack:
aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.this$0:Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping;
aload 2
aload 3
aload 1
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initCorsConfiguration:(Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/Object;)Lorg/springframework/web/cors/CorsConfiguration;
astore 7
start local 7 13: aload 7
ifnull 16
14: aload 7
invokevirtual org.springframework.web.cors.CorsConfiguration.validateAllowCredentials:()V
15: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.corsLookup:Ljava/util/Map;
aload 4
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: StackMap locals: org.springframework.web.cors.CorsConfiguration
StackMap stack:
aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.registry:Ljava/util/Map;
aload 1
new org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration
dup
aload 1
aload 4
aload 5
aload 6
invokespecial org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration.<init>:(Ljava/lang/Object;Lorg/springframework/web/method/HandlerMethod;Ljava/util/Set;Ljava/lang/String;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 end local 5 end local 4 17: goto 21
18: StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry java.lang.Object java.lang.Object java.lang.reflect.Method
StackMap stack: java.lang.Throwable
astore 8
19: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
20: aload 8
athrow
21: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
22: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
0 23 1 mapping TT;
0 23 2 handler Ljava/lang/Object;
0 23 3 method Ljava/lang/reflect/Method;
2 17 4 handlerMethod Lorg/springframework/web/method/HandlerMethod;
4 17 5 directPaths Ljava/util/Set<Ljava/lang/String;>;
6 7 6 path Ljava/lang/String;
9 17 6 name Ljava/lang/String;
13 17 7 config Lorg/springframework/web/cors/CorsConfiguration;
Exception table:
from to target type
1 18 18 any
Signature: (TT;Ljava/lang/Object;Ljava/lang/reflect/Method;)V
MethodParameters:
Name Flags
mapping
handler
method
private void validateMethodMapping(org.springframework.web.method.HandlerMethod, );
descriptor: (Lorg/springframework/web/method/HandlerMethod;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.registry:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration.getHandlerMethod:()Lorg/springframework/web/method/HandlerMethod;
goto 3
StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: org.springframework.web.method.HandlerMethod
3: astore 4
start local 4 4: aload 4
ifnull 11
aload 4
aload 1
invokevirtual org.springframework.web.method.HandlerMethod.equals:(Ljava/lang/Object;)Z
ifne 11
5: new java.lang.IllegalStateException
dup
6: new java.lang.StringBuilder
dup
ldc "Ambiguous mapping. Cannot map '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.springframework.web.method.HandlerMethod.getBean:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' method \n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\nto "
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 ": There is already '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: aload 4
invokevirtual org.springframework.web.method.HandlerMethod.getBean:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' bean method\n"
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 " mapped."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: org.springframework.web.method.HandlerMethod
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
0 12 1 handlerMethod Lorg/springframework/web/method/HandlerMethod;
0 12 2 mapping TT;
1 12 3 registration Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistration<TT;>;
4 12 4 existingHandlerMethod Lorg/springframework/web/method/HandlerMethod;
Signature: (Lorg/springframework/web/method/HandlerMethod;TT;)V
MethodParameters:
Name Flags
handlerMethod
mapping
private void addMappingName(java.lang.String, org.springframework.web.method.HandlerMethod);
descriptor: (Ljava/lang/String;Lorg/springframework/web/method/HandlerMethod;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.nameLookup:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 1: aload 3
ifnonnull 3
2: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
astore 3
3: StackMap locals: java.util.List
StackMap stack:
aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry java.lang.String org.springframework.web.method.HandlerMethod java.util.List top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.method.HandlerMethod
astore 4
start local 4 5: aload 2
aload 4
invokevirtual org.springframework.web.method.HandlerMethod.equals:(Ljava/lang/Object;)Z
ifeq 7
6: return
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: new java.util.ArrayList
dup
aload 3
invokeinterface java.util.List.size:()I
iconst_1
iadd
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 9: aload 4
aload 3
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
10: aload 4
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.nameLookup:Ljava/util/Map;
aload 1
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
0 13 1 name Ljava/lang/String;
0 13 2 handlerMethod Lorg/springframework/web/method/HandlerMethod;
1 13 3 oldList Ljava/util/List<Lorg/springframework/web/method/HandlerMethod;>;
5 7 4 current Lorg/springframework/web/method/HandlerMethod;
9 13 4 newList Ljava/util/List<Lorg/springframework/web/method/HandlerMethod;>;
MethodParameters:
Name Flags
name
handlerMethod
public void unregister();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.registry:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration
astore 2
start local 2 2: aload 2
ifnonnull 5
3: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
4: return
5: StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration
StackMap stack:
aload 2
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration.getDirectPaths:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry java.lang.Object org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 7: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.pathLookup:Lorg/springframework/util/MultiValueMap;
aload 3
invokeinterface org.springframework.util.MultiValueMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 5
start local 5 8: aload 5
ifnull 12
9: aload 5
aload 2
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration.getMapping:()Ljava/lang/Object;
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
10: aload 5
invokeinterface java.util.List.isEmpty:()Z
ifeq 12
11: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.pathLookup:Lorg/springframework/util/MultiValueMap;
aload 3
invokeinterface org.springframework.util.MultiValueMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 3 12: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
13: aload 0
aload 2
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.removeMappingName:(Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistration;)V
14: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.corsLookup:Ljava/util/Map;
aload 2
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration.getHandlerMethod:()Lorg/springframework/web/method/HandlerMethod;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 15: goto 19
16: StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry java.lang.Object
StackMap stack: java.lang.Throwable
astore 6
17: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
18: aload 6
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.readWriteLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
20: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
0 21 1 mapping TT;
2 15 2 registration Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistration<TT;>;
7 12 3 path Ljava/lang/String;
8 12 5 mappings Ljava/util/List<TT;>;
Exception table:
from to target type
1 3 16 any
5 16 16 any
Signature: (TT;)V
MethodParameters:
Name Flags
mapping
private void removeMappingName(org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration<T>);
descriptor: (Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistration;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration.getMappingName:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: return
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
invokevirtual org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration.getHandlerMethod:()Lorg/springframework/web/method/HandlerMethod;
astore 3
start local 3 4: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.nameLookup:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 5: aload 4
ifnonnull 7
6: return
7: StackMap locals: org.springframework.web.method.HandlerMethod java.util.List
StackMap stack:
aload 4
invokeinterface java.util.List.size:()I
iconst_1
if_icmpgt 10
8: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.nameLookup:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
9: return
10: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 11: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 15
StackMap locals: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration java.lang.String org.springframework.web.method.HandlerMethod java.util.List java.util.List top java.util.Iterator
StackMap stack:
12: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.web.method.HandlerMethod
astore 6
start local 6 13: aload 6
aload 3
invokevirtual org.springframework.web.method.HandlerMethod.equals:(Ljava/lang/Object;)Z
ifne 15
14: aload 5
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 15: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
16: aload 0
getfield org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.nameLookup:Ljava/util/Map;
aload 2
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistry;
0 18 1 definition Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistration<TT;>;
1 18 2 name Ljava/lang/String;
4 18 3 handlerMethod Lorg/springframework/web/method/HandlerMethod;
5 18 4 oldList Ljava/util/List<Lorg/springframework/web/method/HandlerMethod;>;
11 18 5 newList Ljava/util/List<Lorg/springframework/web/method/HandlerMethod;>;
13 15 6 current Lorg/springframework/web/method/HandlerMethod;
Signature: (Lorg/springframework/web/servlet/handler/AbstractHandlerMethodMapping$MappingRegistration<TT;>;)V
MethodParameters:
Name Flags
definition
}
SourceFile: "AbstractHandlerMethodMapping.java"
NestHost: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping
InnerClasses:
public ReadLock = java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock of java.util.concurrent.locks.ReentrantReadWriteLock
public WriteLock = java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock of java.util.concurrent.locks.ReentrantReadWriteLock
MappingRegistration = org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistration of org.springframework.web.servlet.handler.AbstractHandlerMethodMapping
MappingRegistry = org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry of org.springframework.web.servlet.handler.AbstractHandlerMethodMapping