public class org.springframework.web.servlet.resource.ResourceHttpRequestHandler extends org.springframework.web.servlet.support.WebContentGenerator implements org.springframework.web.HttpRequestHandler, org.springframework.context.EmbeddedValueResolverAware, org.springframework.beans.factory.InitializingBean, org.springframework.web.cors.CorsConfigurationSource
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.servlet.resource.ResourceHttpRequestHandler
super_class: org.springframework.web.servlet.support.WebContentGenerator
{
private static final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String URL_RESOURCE_CHARSET_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "[charset="
private final java.util.List<java.lang.String> locationValues;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
private final java.util.List<org.springframework.core.io.Resource> locationResources;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/core/io/Resource;>;
private final java.util.List<org.springframework.core.io.Resource> locationsToUse;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/core/io/Resource;>;
private final java.util.Map<org.springframework.core.io.Resource, java.nio.charset.Charset> locationCharsets;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/springframework/core/io/Resource;Ljava/nio/charset/Charset;>;
private final java.util.List<org.springframework.web.servlet.resource.ResourceResolver> resourceResolvers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceResolver;>;
private final java.util.List<org.springframework.web.servlet.resource.ResourceTransformer> resourceTransformers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceTransformer;>;
private org.springframework.web.servlet.resource.ResourceResolverChain resolverChain;
descriptor: Lorg/springframework/web/servlet/resource/ResourceResolverChain;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.web.servlet.resource.ResourceTransformerChain transformerChain;
descriptor: Lorg/springframework/web/servlet/resource/ResourceTransformerChain;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.http.converter.ResourceHttpMessageConverter resourceHttpMessageConverter;
descriptor: Lorg/springframework/http/converter/ResourceHttpMessageConverter;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.http.converter.ResourceRegionHttpMessageConverter resourceRegionHttpMessageConverter;
descriptor: Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.web.accept.ContentNegotiationManager contentNegotiationManager;
descriptor: Lorg/springframework/web/accept/ContentNegotiationManager;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.Map<java.lang.String, org.springframework.http.MediaType> mediaTypes;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/springframework/http/MediaType;>;
private org.springframework.web.cors.CorsConfiguration corsConfiguration;
descriptor: Lorg/springframework/web/cors/CorsConfiguration;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.web.util.UrlPathHelper urlPathHelper;
descriptor: Lorg/springframework/web/util/UrlPathHelper;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.util.StringValueResolver embeddedValueResolver;
descriptor: Lorg/springframework/util/StringValueResolver;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private boolean useLastModified;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
iconst_2
anewarray java.lang.String
dup
iconst_0
getstatic org.springframework.http.HttpMethod.GET:Lorg/springframework/http/HttpMethod;
invokevirtual org.springframework.http.HttpMethod.name:()Ljava/lang/String;
aastore
dup
iconst_1
getstatic org.springframework.http.HttpMethod.HEAD:Lorg/springframework/http/HttpMethod;
invokevirtual org.springframework.http.HttpMethod.name:()Ljava/lang/String;
aastore
invokespecial org.springframework.web.servlet.support.WebContentGenerator.<init>:([Ljava/lang/String;)V
1: aload 0
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
2: aload 0
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationResources:Ljava/util/List;
3: aload 0
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationsToUse:Ljava/util/List;
4: aload 0
new java.util.HashMap
dup
iconst_4
invokespecial java.util.HashMap.<init>:(I)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationCharsets:Ljava/util/Map;
5: aload 0
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
6: aload 0
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
7: aload 0
new java.util.HashMap
dup
iconst_4
invokespecial java.util.HashMap.<init>:(I)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.mediaTypes:Ljava/util/Map;
8: aload 0
iconst_1
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.useLastModified:Z
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
public void setLocationValues(java.util.List<java.lang.String>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "Locations list must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
invokeinterface java.util.List.clear:()V
2: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
aload 1
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 4 1 locations Ljava/util/List<Ljava/lang/String;>;
Signature: (Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
locations
public void setLocations(java.util.List<org.springframework.core.io.Resource>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "Locations list must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationResources:Ljava/util/List;
invokeinterface java.util.List.clear:()V
2: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationResources:Ljava/util/List;
aload 1
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 4 1 locations Ljava/util/List<Lorg/springframework/core/io/Resource;>;
Signature: (Ljava/util/List<Lorg/springframework/core/io/Resource;>;)V
MethodParameters:
Name Flags
locations
public java.util.List<org.springframework.core.io.Resource> getLocations();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationsToUse:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationResources:Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationsToUse:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
Signature: ()Ljava/util/List<Lorg/springframework/core/io/Resource;>;
public void setResourceResolvers(java.util.List<org.springframework.web.servlet.resource.ResourceResolver>);
descriptor: (Ljava/util/List;)V
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.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
invokeinterface java.util.List.clear:()V
1: aload 1
ifnull 3
2: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
aload 1
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 4 1 resourceResolvers Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceResolver;>;
Signature: (Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceResolver;>;)V
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
resourceResolvers
public java.util.List<org.springframework.web.servlet.resource.ResourceResolver> getResourceResolvers();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
Signature: ()Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceResolver;>;
public void setResourceTransformers(java.util.List<org.springframework.web.servlet.resource.ResourceTransformer>);
descriptor: (Ljava/util/List;)V
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.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
invokeinterface java.util.List.clear:()V
1: aload 1
ifnull 3
2: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
aload 1
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 4 1 resourceTransformers Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceTransformer;>;
Signature: (Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceTransformer;>;)V
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
resourceTransformers
public java.util.List<org.springframework.web.servlet.resource.ResourceTransformer> getResourceTransformers();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
Signature: ()Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceTransformer;>;
public void setResourceHttpMessageConverter(org.springframework.http.converter.ResourceHttpMessageConverter);
descriptor: (Lorg/springframework/http/converter/ResourceHttpMessageConverter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 2 1 messageConverter Lorg/springframework/http/converter/ResourceHttpMessageConverter;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
messageConverter
public org.springframework.http.converter.ResourceHttpMessageConverter getResourceHttpMessageConverter();
descriptor: ()Lorg/springframework/http/converter/ResourceHttpMessageConverter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setResourceRegionHttpMessageConverter(org.springframework.http.converter.ResourceRegionHttpMessageConverter);
descriptor: (Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 2 1 messageConverter Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
messageConverter
public org.springframework.http.converter.ResourceRegionHttpMessageConverter getResourceRegionHttpMessageConverter();
descriptor: ()Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setContentNegotiationManager(org.springframework.web.accept.ContentNegotiationManager);
descriptor: (Lorg/springframework/web/accept/ContentNegotiationManager;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationManager:Lorg/springframework/web/accept/ContentNegotiationManager;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 2 1 contentNegotiationManager Lorg/springframework/web/accept/ContentNegotiationManager;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
contentNegotiationManager
public org.springframework.web.accept.ContentNegotiationManager getContentNegotiationManager();
descriptor: ()Lorg/springframework/web/accept/ContentNegotiationManager;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationManager:Lorg/springframework/web/accept/ContentNegotiationManager;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
java.lang.Deprecated()
public void setMediaTypes(java.util.Map<java.lang.String, org.springframework.http.MediaType>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokedynamic accept(Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;)Ljava/util/function/BiConsumer;
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;)V
org/springframework/web/servlet/resource/ResourceHttpRequestHandler.lambda$0(Ljava/lang/String;Lorg/springframework/http/MediaType;)V (7)
(Ljava/lang/String;Lorg/springframework/http/MediaType;)V
invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 2 1 mediaTypes Ljava/util/Map<Ljava/lang/String;Lorg/springframework/http/MediaType;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/springframework/http/MediaType;>;)V
MethodParameters:
Name Flags
mediaTypes
public java.util.Map<java.lang.String, org.springframework.http.MediaType> getMediaTypes();
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.resource.ResourceHttpRequestHandler.mediaTypes:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/springframework/http/MediaType;>;
public void setCorsConfiguration(org.springframework.web.cors.CorsConfiguration);
descriptor: (Lorg/springframework/web/cors/CorsConfiguration;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.corsConfiguration:Lorg/springframework/web/cors/CorsConfiguration;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 2 1 corsConfiguration Lorg/springframework/web/cors/CorsConfiguration;
MethodParameters:
Name Flags
corsConfiguration
public org.springframework.web.cors.CorsConfiguration getCorsConfiguration(HttpServletRequest);
descriptor: (LHttpServletRequest;)Lorg/springframework/web/cors/CorsConfiguration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tHttpServletRequest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
request
public void setUrlPathHelper(org.springframework.web.util.UrlPathHelper);
descriptor: (Lorg/springframework/web/util/UrlPathHelper;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 2 1 urlPathHelper Lorg/springframework/web/util/UrlPathHelper;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
urlPathHelper
public org.springframework.web.util.UrlPathHelper getUrlPathHelper();
descriptor: ()Lorg/springframework/web/util/UrlPathHelper;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setEmbeddedValueResolver(org.springframework.util.StringValueResolver);
descriptor: (Lorg/springframework/util/StringValueResolver;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 2 1 resolver Lorg/springframework/util/StringValueResolver;
MethodParameters:
Name Flags
resolver
public boolean isUseLastModified();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.useLastModified:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
public void setUseLastModified(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.useLastModified:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 2 1 useLastModified Z
MethodParameters:
Name Flags
useLastModified
public void afterPropertiesSet();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolveResourceLocations:()V
1: getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
ifeq 3
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getLocations:()Ljava/util/List;
invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
ifeq 3
2: getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
ldc "Locations list is empty. No resources will be served unless a custom ResourceResolver is configured as an alternative to PathResourceResolver."
invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 5
4: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
new org.springframework.web.servlet.resource.PathResourceResolver
dup
invokespecial org.springframework.web.servlet.resource.PathResourceResolver.<init>:()V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.initAllowedLocations:()V
6: aload 0
new org.springframework.web.servlet.resource.DefaultResourceResolverChain
dup
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
invokespecial org.springframework.web.servlet.resource.DefaultResourceResolverChain.<init>:(Ljava/util/List;)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolverChain:Lorg/springframework/web/servlet/resource/ResourceResolverChain;
7: aload 0
new org.springframework.web.servlet.resource.DefaultResourceTransformerChain
dup
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolverChain:Lorg/springframework/web/servlet/resource/ResourceResolverChain;
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
invokespecial org.springframework.web.servlet.resource.DefaultResourceTransformerChain.<init>:(Lorg/springframework/web/servlet/resource/ResourceResolverChain;Ljava/util/List;)V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.transformerChain:Lorg/springframework/web/servlet/resource/ResourceTransformerChain;
8: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
ifnonnull 10
9: aload 0
new org.springframework.http.converter.ResourceHttpMessageConverter
dup
invokespecial org.springframework.http.converter.ResourceHttpMessageConverter.<init>:()V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
10: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
ifnonnull 12
11: aload 0
new org.springframework.http.converter.ResourceRegionHttpMessageConverter
dup
invokespecial org.springframework.http.converter.ResourceRegionHttpMessageConverter.<init>:()V
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getContentNegotiationManager:()Lorg/springframework/web/accept/ContentNegotiationManager;
astore 1
start local 1 13: aload 1
ifnull 15
14: aload 0
aload 1
invokevirtual org.springframework.web.accept.ContentNegotiationManager.getMediaTypeMappings:()Ljava/util/Map;
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.setMediaTypes:(Ljava/util/Map;)V
15: StackMap locals: org.springframework.web.accept.ContentNegotiationManager
StackMap stack:
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.initContentNegotiationStrategy:()Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
16: astore 2
start local 2 17: aload 2
ifnull 19
18: aload 0
aload 2
invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.getMediaTypes:()Ljava/util/Map;
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.setMediaTypes:(Ljava/util/Map;)V
19: StackMap locals: org.springframework.web.accept.PathExtensionContentNegotiationStrategy
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
13 20 1 manager Lorg/springframework/web/accept/ContentNegotiationManager;
17 20 2 strategy Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
Exceptions:
throws java.lang.Exception
private void resolveResourceLocations();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 32
1: aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.obtainApplicationContext:()Lorg/springframework/context/ApplicationContext;
astore 1
start local 1 2: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 31
StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler org.springframework.context.ApplicationContext top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 4: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
ifnull 9
5: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
aload 2
invokeinterface org.springframework.util.StringValueResolver.resolveStringValue:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 6: aload 4
ifnonnull 8
7: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Location resolved to null: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler org.springframework.context.ApplicationContext java.lang.String java.util.Iterator java.lang.String
StackMap stack:
aload 4
astore 2
end local 4 9: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 10: aload 2
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 2
11: aload 2
ldc "[charset="
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 18
12: aload 2
bipush 93
ldc "[charset="
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.indexOf:(II)I
istore 5
start local 5 13: iload 5
iconst_m1
if_icmpne 15
14: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid charset syntax in location: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: java.nio.charset.Charset int
StackMap stack:
aload 2
ldc "[charset="
invokevirtual java.lang.String.length:()I
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 6
start local 6 16: aload 6
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
astore 4
17: aload 2
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
end local 6 end local 5 18: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface org.springframework.context.ApplicationContext.getResource:(Ljava/lang/String;)Lorg/springframework/core/io/Resource;
astore 5
start local 5 19: aload 2
ldc "/"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 26
aload 5
instanceof org.springframework.web.context.support.ServletContextResource
ifne 26
20: new java.lang.IllegalStateException
dup
21: new java.lang.StringBuilder
dup
ldc "The String-based location \"/\" should be relative to the web application root but resolved to a Resource of type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
22: aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ". "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: ldc "If this is intentional, please pass it as a pre-configured Resource via setLocations."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals: org.springframework.core.io.Resource
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationsToUse:Ljava/util/List;
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
27: aload 4
ifnull 31
28: aload 5
instanceof org.springframework.core.io.UrlResource
ifne 30
29: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unexpected charset for non-UrlResource: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationCharsets:Ljava/util/Map;
aload 5
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 end local 2 31: StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler org.springframework.context.ApplicationContext top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 1 32: StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationsToUse:Ljava/util/List;
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationResources:Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
33: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
2 32 1 applicationContext Lorg/springframework/context/ApplicationContext;
4 31 2 location Ljava/lang/String;
6 9 4 resolvedLocation Ljava/lang/String;
10 31 4 charset Ljava/nio/charset/Charset;
13 18 5 endIndex I
16 18 6 value Ljava/lang/String;
19 31 5 resource Lorg/springframework/core/io/Resource;
protected void initAllowedLocations();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getLocations:()Ljava/util/List;
invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResourceResolvers:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 1
start local 1 3: goto 13
4: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResourceResolvers:()Ljava/util/List;
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
instanceof org.springframework.web.servlet.resource.PathResourceResolver
ifeq 12
5: aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResourceResolvers:()Ljava/util/List;
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.springframework.web.servlet.resource.PathResourceResolver
astore 2
start local 2 6: aload 2
invokevirtual org.springframework.web.servlet.resource.PathResourceResolver.getAllowedLocations:()[Lorg/springframework/core/io/Resource;
invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
ifeq 8
7: aload 2
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getLocations:()Ljava/util/List;
iconst_0
anewarray org.springframework.core.io.Resource
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.springframework.core.io.Resource[]
invokevirtual org.springframework.web.servlet.resource.PathResourceResolver.setAllowedLocations:([Lorg/springframework/core/io/Resource;)V
8: StackMap locals: org.springframework.web.servlet.resource.PathResourceResolver
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
ifnull 14
9: aload 2
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationCharsets:Ljava/util/Map;
invokevirtual org.springframework.web.servlet.resource.PathResourceResolver.setLocationCharsets:(Ljava/util/Map;)V
10: aload 2
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
invokevirtual org.springframework.web.servlet.resource.PathResourceResolver.setUrlPathHelper:(Lorg/springframework/web/util/UrlPathHelper;)V
11: goto 14
end local 2 12: StackMap locals:
StackMap stack:
iinc 1 -1
StackMap locals:
StackMap stack:
13: iload 1
ifge 4
end local 1 14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
3 14 1 i I
6 12 2 pathResolver Lorg/springframework/web/servlet/resource/PathResourceResolver;
protected org.springframework.web.accept.PathExtensionContentNegotiationStrategy initContentNegotiationStrategy();
descriptor: ()Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
java.lang.Deprecated()
public void handleRequest(HttpServletRequest, HttpServletResponse);
descriptor: (LHttpServletRequest;LHttpServletResponse;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tHttpServletRequest cannot be resolved to a type\n\tHttpServletResponse cannot be resolved to a type\n\tServletException cannot be resolved to a type\n\tHttpServletResponse cannot be resolved to a variable\n\tHttpServletResponse cannot be resolved to a variable\n\tHttpServletResponse cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
Exceptions:
throws ServletException, java.io.IOException
MethodParameters:
Name Flags
request
response
protected org.springframework.core.io.Resource getResource(HttpServletRequest);
descriptor: (LHttpServletRequest;)Lorg/springframework/core/io/Resource;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tHttpServletRequest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
request
protected java.lang.String processPath(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "\\"
ldc "/"
invokestatic org.springframework.util.StringUtils.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
1: aload 0
aload 1
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.cleanDuplicateSlashes:(Ljava/lang/String;)Ljava/lang/String;
astore 1
2: aload 0
aload 1
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.cleanLeadingSlash:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 3 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
private java.lang.String cleanDuplicateSlashes(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 18
4: StackMap locals: java.lang.StringBuilder int int
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 5: iload 5
bipush 47
if_icmpne 10
iload 3
bipush 47
if_icmpne 10
6: aload 2
ifnonnull 8
7: new java.lang.StringBuilder
dup
aload 1
iconst_0
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
8: StackMap locals: int
StackMap stack:
iload 5
istore 3
9: goto 17
10: StackMap locals:
StackMap stack:
aload 2
ifnull 16
11: aload 2
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
12: goto 16
13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
14: iload 5
istore 3
15: aload 6
athrow
16: StackMap locals:
StackMap stack:
iload 5
istore 3
end local 5 17: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 4
end local 4 19: aload 2
ifnull 20
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 21
StackMap locals:
StackMap stack:
20: aload 1
StackMap locals:
StackMap stack: java.lang.String
21: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 22 1 path Ljava/lang/String;
1 22 2 sb Ljava/lang/StringBuilder;
2 22 3 prev C
3 19 4 i I
5 17 5 curr C
Exception table:
from to target type
5 8 13 any
10 13 13 any
MethodParameters:
Name Flags
path
private java.lang.String cleanLeadingSlash(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 13
3: StackMap locals: int int
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 6
4: iconst_1
istore 2
5: goto 12
6: StackMap locals:
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 32
if_icmple 12
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 127
if_icmpeq 12
7: iload 3
ifeq 8
iload 3
iconst_1
if_icmpne 9
iload 2
ifeq 9
8: StackMap locals:
StackMap stack:
aload 1
areturn
9: StackMap locals:
StackMap stack:
iload 2
ifeq 10
new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 11
StackMap locals:
StackMap stack:
10: aload 1
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
11: areturn
12: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
13: iload 3
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 3
end local 3 14: iload 2
ifeq 15
ldc "/"
goto 16
StackMap locals:
StackMap stack:
15: ldc ""
StackMap locals:
StackMap stack: java.lang.String
16: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 17 1 path Ljava/lang/String;
1 17 2 slash Z
2 14 3 i I
MethodParameters:
Name Flags
path
private boolean isInvalidEncodedPath(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "%"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 9
1: aload 1
ldc "UTF-8"
invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 2: aload 0
aload 2
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.isInvalidPath:(Ljava/lang/String;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 2
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.processPath:(Ljava/lang/String;)Ljava/lang/String;
astore 2
5: aload 0
aload 2
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.isInvalidPath:(Ljava/lang/String;)Z
ifeq 9
6: iconst_1
ireturn
end local 2 7: StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler java.lang.String
StackMap stack: java.lang.IllegalArgumentException
pop
goto 9
8: StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
pop
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 10 1 path Ljava/lang/String;
2 7 2 decodedPath Ljava/lang/String;
Exception table:
from to target type
1 3 7 Class java.lang.IllegalArgumentException
4 6 7 Class java.lang.IllegalArgumentException
1 3 8 Class java.io.UnsupportedEncodingException
4 6 8 Class java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
path
protected boolean isInvalidPath(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "WEB-INF"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 1
aload 1
ldc "META-INF"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 4
1: StackMap locals:
StackMap stack:
getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
ifeq 3
2: getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Path with \"WEB-INF\" or \"META-INF\": ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 1
ldc ":/"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 12
5: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 6
aload 1
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
goto 7
StackMap locals:
StackMap stack:
6: aload 1
StackMap locals:
StackMap stack: java.lang.String
7: astore 2
start local 2 8: aload 2
invokestatic org.springframework.util.ResourceUtils.isUrl:(Ljava/lang/String;)Z
ifne 9
aload 2
ldc "url:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
9: StackMap locals: java.lang.String
StackMap stack:
getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
ifeq 11
10: getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Path represents URL or has \"url:\" prefix: ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
11: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 12: StackMap locals:
StackMap stack:
aload 1
ldc ".."
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 16
aload 1
invokestatic org.springframework.util.StringUtils.cleanPath:(Ljava/lang/String;)Ljava/lang/String;
ldc "../"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 16
13: getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
ifeq 15
14: getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Path contains \"../\" after call to StringUtils#cleanPath: ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
iconst_1
ireturn
16: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 17 1 path Ljava/lang/String;
8 12 2 relativePath Ljava/lang/String;
MethodParameters:
Name Flags
path
protected org.springframework.http.MediaType getMediaType(HttpServletRequest, org.springframework.core.io.Resource);
descriptor: (LHttpServletRequest;Lorg/springframework/core/io/Resource;)Lorg/springframework/http/MediaType;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tHttpServletRequest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
request
resource
protected void setHeaders(HttpServletResponse, org.springframework.core.io.Resource, org.springframework.http.MediaType);
descriptor: (LHttpServletResponse;Lorg/springframework/core/io/Resource;Lorg/springframework/http/MediaType;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tHttpServletResponse cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
Exceptions:
throws java.io.IOException
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
response
resource
mediaType
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "ResourceHttpRequestHandler "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getLocations:()Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
public void handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse);
descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
flags: (0x1001) ACC_PUBLIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe type ResourceHttpRequestHandler must implement the inherited abstract method HttpRequestHandler.handleRequest(HttpServletRequest, HttpServletResponse)\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws javax.servlet.ServletException, java.io.IOException
MethodParameters:
Name Flags
public org.springframework.web.cors.CorsConfiguration getCorsConfiguration(javax.servlet.http.HttpServletRequest);
descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/cors/CorsConfiguration;
flags: (0x1001) ACC_PUBLIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe type ResourceHttpRequestHandler must implement the inherited abstract method CorsConfigurationSource.getCorsConfiguration(HttpServletRequest)\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
private void lambda$0(java.lang.String, org.springframework.http.MediaType);
descriptor: (Ljava/lang/String;Lorg/springframework/http/MediaType;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.mediaTypes:Ljava/util/Map;
aload 1
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 1 1 ext Ljava/lang/String;
0 1 2 mediaType Lorg/springframework/http/MediaType;
}
SourceFile: "ResourceHttpRequestHandler.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles