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> locations;
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 org.springframework.web.accept.PathExtensionContentNegotiationStrategy contentNegotiationStrategy;
descriptor: Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
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()
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.locations:Ljava/util/List;
3: 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;
4: 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;
5: 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;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 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 "Location values 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 locationValues Ljava/util/List<Ljava/lang/String;>;
Signature: (Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
locationValues
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.locations:Ljava/util/List;
invokeinterface java.util.List.clear:()V
2: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations: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.locations: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/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;
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()
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(javax.servlet.http.HttpServletRequest);
descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/cors/CorsConfiguration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.corsConfiguration:Lorg/springframework/web/cors/CorsConfiguration;
areturn
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 request Ljavax/servlet/http/HttpServletRequest;
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 void afterPropertiesSet();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, 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
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations: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
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.initContentNegotiationStrategy:()Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationStrategy:Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
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;
invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
ifne 4
3: new java.lang.IllegalArgumentException
dup
ldc "Please set either Resource-based \"locations\" or String-based \"locationValues\", but not both."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.obtainApplicationContext:()Lorg/springframework/context/ApplicationContext;
astore 1
start local 1 5: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 27
StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler org.springframework.context.ApplicationContext top java.util.Iterator
StackMap stack:
6: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 7: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
ifnull 12
8: 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 9: aload 4
ifnonnull 11
10: 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
11: 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 12: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 13: aload 2
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 2
14: aload 2
ldc "[charset="
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
15: aload 2
bipush 93
ldc "[charset="
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.indexOf:(II)I
istore 5
start local 5 16: iload 5
iconst_m1
if_icmpne 18
17: 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
18: 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 19: aload 6
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
astore 4
20: aload 2
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
end local 6 end local 5 21: 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 22: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: aload 4
ifnull 27
24: aload 5
instanceof org.springframework.core.io.UrlResource
ifne 26
25: 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
26: StackMap locals: org.springframework.core.io.Resource
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 27: 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 6
28: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
5 29 1 applicationContext Lorg/springframework/context/ApplicationContext;
7 27 2 location Ljava/lang/String;
9 12 4 resolvedLocation Ljava/lang/String;
13 27 4 charset Ljava/nio/charset/Charset;
16 21 5 endIndex I
19 21 6 value Ljava/lang/String;
22 27 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
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations: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=4, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getContentNegotiationManager:()Lorg/springframework/web/accept/ContentNegotiationManager;
ifnull 6
2: aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getContentNegotiationManager:()Lorg/springframework/web/accept/ContentNegotiationManager;
ldc Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
invokevirtual org.springframework.web.accept.ContentNegotiationManager.getStrategy:(Ljava/lang/Class;)Lorg/springframework/web/accept/ContentNegotiationStrategy;
checkcast org.springframework.web.accept.PathExtensionContentNegotiationStrategy
3: astore 2
start local 2 4: aload 2
ifnull 6
5: new java.util.HashMap
dup
aload 2
invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.getMediaTypes:()Ljava/util/Map;
invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
astore 1
end local 2 6: StackMap locals: java.util.Map
StackMap stack:
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getServletContext:()Ljavax/servlet/ServletContext;
ifnull 8
7: new org.springframework.web.accept.ServletPathExtensionContentNegotiationStrategy
dup
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getServletContext:()Ljavax/servlet/ServletContext;
aload 1
invokespecial org.springframework.web.accept.ServletPathExtensionContentNegotiationStrategy.<init>:(Ljavax/servlet/ServletContext;Ljava/util/Map;)V
goto 9
8: StackMap locals:
StackMap stack:
new org.springframework.web.accept.PathExtensionContentNegotiationStrategy
dup
aload 1
invokespecial org.springframework.web.accept.PathExtensionContentNegotiationStrategy.<init>:(Ljava/util/Map;)V
9: StackMap locals:
StackMap stack: org.springframework.web.accept.PathExtensionContentNegotiationStrategy
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
1 10 1 mediaTypes Ljava/util/Map<Ljava/lang/String;Lorg/springframework/http/MediaType;>;
4 6 2 strategy Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
public void handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse);
descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResource:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/core/io/Resource;
astore 3
start local 3 1: aload 3
ifnonnull 5
2: getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
ldc "Resource not found"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
3: aload 2
sipush 404
invokeinterface javax.servlet.http.HttpServletResponse.sendError:(I)V
4: return
5: StackMap locals: org.springframework.core.io.Resource
StackMap stack:
getstatic org.springframework.http.HttpMethod.OPTIONS:Lorg/springframework/http/HttpMethod;
aload 1
invokeinterface javax.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
invokevirtual org.springframework.http.HttpMethod.matches:(Ljava/lang/String;)Z
ifeq 8
6: aload 2
ldc "Allow"
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getAllowHeader:()Ljava/lang/String;
invokeinterface javax.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
7: return
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.checkRequest:(Ljavax/servlet/http/HttpServletRequest;)V
9: new org.springframework.web.context.request.ServletWebRequest
dup
aload 1
aload 2
invokespecial org.springframework.web.context.request.ServletWebRequest.<init>:(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
aload 3
invokeinterface org.springframework.core.io.Resource.lastModified:()J
invokevirtual org.springframework.web.context.request.ServletWebRequest.checkNotModified:(J)Z
ifeq 12
10: getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
ldc "Resource not modified"
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
11: return
12: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.prepareResponse:(Ljavax/servlet/http/HttpServletResponse;)V
13: aload 0
aload 1
aload 3
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getMediaType:(Ljavax/servlet/http/HttpServletRequest;Lorg/springframework/core/io/Resource;)Lorg/springframework/http/MediaType;
astore 4
start local 4 14: ldc "HEAD"
aload 1
invokeinterface javax.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
15: aload 0
aload 2
aload 3
aload 4
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.setHeaders:(Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/core/io/Resource;Lorg/springframework/http/MediaType;)V
16: return
17: StackMap locals: org.springframework.http.MediaType
StackMap stack:
new org.springframework.http.server.ServletServerHttpResponse
dup
aload 2
invokespecial org.springframework.http.server.ServletServerHttpResponse.<init>:(Ljavax/servlet/http/HttpServletResponse;)V
astore 5
start local 5 18: aload 1
ldc "Range"
invokeinterface javax.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
ifnonnull 25
19: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
ifnull 20
iconst_1
goto 21
StackMap locals: org.springframework.http.server.ServletServerHttpResponse
StackMap stack:
20: iconst_0
StackMap locals:
StackMap stack: int
21: ldc "Not initialized"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
22: aload 0
aload 2
aload 3
aload 4
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.setHeaders:(Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/core/io/Resource;Lorg/springframework/http/MediaType;)V
23: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
aload 3
aload 4
aload 5
invokevirtual org.springframework.http.converter.ResourceHttpMessageConverter.write:(Ljava/lang/Object;Lorg/springframework/http/MediaType;Lorg/springframework/http/HttpOutputMessage;)V
24: goto 39
25: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
ifnull 26
iconst_1
goto 27
StackMap locals:
StackMap stack:
26: iconst_0
StackMap locals:
StackMap stack: int
27: ldc "Not initialized"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
28: aload 2
ldc "Accept-Ranges"
ldc "bytes"
invokeinterface javax.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
29: new org.springframework.http.server.ServletServerHttpRequest
dup
aload 1
invokespecial org.springframework.http.server.ServletServerHttpRequest.<init>:(Ljavax/servlet/http/HttpServletRequest;)V
astore 6
start local 6 30: aload 6
invokevirtual org.springframework.http.server.ServletServerHttpRequest.getHeaders:()Lorg/springframework/http/HttpHeaders;
invokevirtual org.springframework.http.HttpHeaders.getRange:()Ljava/util/List;
astore 7
start local 7 31: aload 2
sipush 206
invokeinterface javax.servlet.http.HttpServletResponse.setStatus:(I)V
32: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
33: aload 7
aload 3
invokestatic org.springframework.http.HttpRange.toResourceRegions:(Ljava/util/List;Lorg/springframework/core/io/Resource;)Ljava/util/List;
aload 4
aload 5
34: invokevirtual org.springframework.http.converter.ResourceRegionHttpMessageConverter.write:(Ljava/lang/Object;Lorg/springframework/http/MediaType;Lorg/springframework/http/HttpOutputMessage;)V
end local 7 35: goto 39
36: StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse org.springframework.core.io.Resource org.springframework.http.MediaType org.springframework.http.server.ServletServerHttpResponse org.springframework.http.server.ServletServerHttpRequest
StackMap stack: java.lang.IllegalArgumentException
pop
37: aload 2
ldc "Content-Range"
new java.lang.StringBuilder
dup
ldc "bytes */"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface org.springframework.core.io.Resource.contentLength:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface javax.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
38: aload 2
sipush 416
invokeinterface javax.servlet.http.HttpServletResponse.sendError:(I)V
end local 6 39: StackMap locals:
StackMap stack:
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 40 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 40 1 request Ljavax/servlet/http/HttpServletRequest;
0 40 2 response Ljavax/servlet/http/HttpServletResponse;
1 40 3 resource Lorg/springframework/core/io/Resource;
14 40 4 mediaType Lorg/springframework/http/MediaType;
18 40 5 outputMessage Lorg/springframework/http/server/ServletServerHttpResponse;
30 39 6 inputMessage Lorg/springframework/http/server/ServletServerHttpRequest;
31 35 7 httpRanges Ljava/util/List<Lorg/springframework/http/HttpRange;>;
Exception table:
from to target type
30 35 36 Class java.lang.IllegalArgumentException
Exceptions:
throws javax.servlet.ServletException, java.io.IOException
MethodParameters:
Name Flags
request
response
protected org.springframework.core.io.Resource getResource(javax.servlet.http.HttpServletRequest);
descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/core/io/Resource;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.springframework.web.servlet.HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE:Ljava/lang/String;
invokeinterface javax.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 1: aload 2
ifnonnull 5
2: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Required request attribute '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: getstatic org.springframework.web.servlet.HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not set"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: 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
6: aload 2
invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
ifeq 7
aload 0
aload 2
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.isInvalidPath:(Ljava/lang/String;)Z
ifeq 8
7: StackMap locals:
StackMap stack:
aconst_null
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.isInvalidEncodedPath:(Ljava/lang/String;)Z
ifeq 10
9: aconst_null
areturn
10: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolverChain:Lorg/springframework/web/servlet/resource/ResourceResolverChain;
ldc "ResourceResolverChain not initialized."
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
11: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.transformerChain:Lorg/springframework/web/servlet/resource/ResourceTransformerChain;
ldc "ResourceTransformerChain not initialized."
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
12: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolverChain:Lorg/springframework/web/servlet/resource/ResourceResolverChain;
aload 1
aload 2
aload 0
invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getLocations:()Ljava/util/List;
invokeinterface org.springframework.web.servlet.resource.ResourceResolverChain.resolveResource:(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;Ljava/util/List;)Lorg/springframework/core/io/Resource;
astore 3
start local 3 13: aload 3
ifnull 15
14: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.transformerChain:Lorg/springframework/web/servlet/resource/ResourceTransformerChain;
aload 1
aload 3
invokeinterface org.springframework.web.servlet.resource.ResourceTransformerChain.transform:(Ljavax/servlet/http/HttpServletRequest;Lorg/springframework/core/io/Resource;)Lorg/springframework/core/io/Resource;
astore 3
15: StackMap locals: org.springframework.core.io.Resource
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 16 1 request Ljavax/servlet/http/HttpServletRequest;
1 16 2 path Ljava/lang/String;
13 16 3 resource Lorg/springframework/core/io/Resource;
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 8
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 8
6: iconst_1
ireturn
end local 2 7: StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler java.lang.String
StackMap stack: java.lang.Exception
pop
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
0 9 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 7 Class java.io.UnsupportedEncodingException
4 6 7 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(javax.servlet.http.HttpServletRequest, org.springframework.core.io.Resource);
descriptor: (Ljavax/servlet/http/HttpServletRequest;Lorg/springframework/core/io/Resource;)Lorg/springframework/http/MediaType;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationStrategy:Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
ifnull 2
1: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationStrategy:Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
aload 2
invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.getMediaTypeForResource:(Lorg/springframework/core/io/Resource;)Lorg/springframework/http/MediaType;
goto 3
StackMap locals:
StackMap stack:
2: aconst_null
3: StackMap locals:
StackMap stack: org.springframework.http.MediaType
areturn
end local 2 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 request Ljavax/servlet/http/HttpServletRequest;
0 4 2 resource Lorg/springframework/core/io/Resource;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
request
resource
protected void setHeaders(javax.servlet.http.HttpServletResponse, org.springframework.core.io.Resource, org.springframework.http.MediaType);
descriptor: (Ljavax/servlet/http/HttpServletResponse;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\tThe method setContentLengthLong(long) is undefined for the type HttpServletResponse\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.formatLocations:()Ljava/lang/Object;
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;
private java.lang.Object formatLocations();
descriptor: ()Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, 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 2
1: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
ldc "\", \""
ldc "[\""
ldc "\"]"
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 4
3: aload 0
getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
areturn
4: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
}
SourceFile: "ResourceHttpRequestHandler.java"