public class org.springframework.web.context.ContextLoader
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.context.ContextLoader
super_class: java.lang.Object
{
public static final java.lang.String CONTEXT_ID_PARAM;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "contextId"
public static final java.lang.String CONFIG_LOCATION_PARAM;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "contextConfigLocation"
public static final java.lang.String CONTEXT_CLASS_PARAM;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "contextClass"
public static final java.lang.String CONTEXT_INITIALIZER_CLASSES_PARAM;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "contextInitializerClasses"
public static final java.lang.String GLOBAL_INITIALIZER_CLASSES_PARAM;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "globalInitializerClasses"
private static final java.lang.String INIT_PARAM_DELIMITERS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: ",; \t\n"
private static final java.lang.String DEFAULT_STRATEGIES_PATH;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "ContextLoader.properties"
private static final java.util.Properties defaultStrategies;
descriptor: Ljava/util/Properties;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.ClassLoader, org.springframework.web.context.WebApplicationContext> currentContextPerThread;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/ClassLoader;Lorg/springframework/web/context/WebApplicationContext;>;
private static volatile org.springframework.web.context.WebApplicationContext currentContext;
descriptor: Lorg/springframework/web/context/WebApplicationContext;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.web.context.WebApplicationContext context;
descriptor: Lorg/springframework/web/context/WebApplicationContext;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.List<org.springframework.context.ApplicationContextInitializer<org.springframework.context.ConfigurableApplicationContext>> contextInitializers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/context/ApplicationContextInitializer<Lorg/springframework/context/ConfigurableApplicationContext;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=1, args_size=0
0: new org.springframework.core.io.ClassPathResource
dup
ldc "ContextLoader.properties"
ldc Lorg/springframework/web/context/ContextLoader;
invokespecial org.springframework.core.io.ClassPathResource.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
astore 0
start local 0 1: aload 0
invokestatic org.springframework.core.io.support.PropertiesLoaderUtils.loadProperties:(Lorg/springframework/core/io/Resource;)Ljava/util/Properties;
putstatic org.springframework.web.context.ContextLoader.defaultStrategies:Ljava/util/Properties;
end local 0 2: goto 5
3: StackMap locals:
StackMap stack: java.io.IOException
astore 0
start local 0 4: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Could not load 'ContextLoader.properties': "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 0 5: StackMap locals:
StackMap stack:
new java.util.concurrent.ConcurrentHashMap
dup
iconst_1
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
6: putstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
7: return
LocalVariableTable:
Start End Slot Name Signature
1 2 0 resource Lorg/springframework/core/io/ClassPathResource;
4 5 0 ex Ljava/io/IOException;
Exception table:
from to target type
0 2 3 Class java.io.IOException
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/context/ContextLoader;
public void <init>(org.springframework.web.context.WebApplicationContext);
descriptor: (Lorg/springframework/web/context/WebApplicationContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
3: aload 0
aload 1
putfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/web/context/ContextLoader;
0 5 1 context Lorg/springframework/web/context/WebApplicationContext;
MethodParameters:
Name Flags
context
public void setContextInitializers(org.springframework.context.ApplicationContextInitializer<?>[]);
descriptor: ([Lorg/springframework/context/ApplicationContextInitializer;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnull 6
1: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.springframework.web.context.ContextLoader org.springframework.context.ApplicationContextInitializer[] top int int org.springframework.context.ApplicationContextInitializer[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 0
getfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: StackMap locals: org.springframework.web.context.ContextLoader org.springframework.context.ApplicationContextInitializer[]
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/web/context/ContextLoader;
0 7 1 initializers [Lorg/springframework/context/ApplicationContextInitializer;
3 4 2 initializer Lorg/springframework/context/ApplicationContextInitializer<*>;
Signature: ([Lorg/springframework/context/ApplicationContextInitializer<*>;)V
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
initializers
public org.springframework.web.context.WebApplicationContext initWebApplicationContext(javax.servlet.ServletContext);
descriptor: (Ljavax/servlet/ServletContext;)Lorg/springframework/web/context/WebApplicationContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE:Ljava/lang/String;
invokeinterface javax.servlet.ServletContext.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
ifnull 4
1: new java.lang.IllegalStateException
dup
2: ldc "Cannot initialize context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml!"
3: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
ldc "Initializing Spring root WebApplicationContext"
invokeinterface javax.servlet.ServletContext.log:(Ljava/lang/String;)V
5: ldc Lorg/springframework/web/context/ContextLoader;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
astore 2
start local 2 6: aload 2
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 8
7: aload 2
ldc "Root WebApplicationContext: initialization started"
invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
8: StackMap locals: org.apache.commons.logging.Log
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 3
start local 3 9: aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
ifnonnull 11
10: aload 0
aload 0
aload 1
invokevirtual org.springframework.web.context.ContextLoader.createWebApplicationContext:(Ljavax/servlet/ServletContext;)Lorg/springframework/web/context/WebApplicationContext;
putfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
11: StackMap locals: long
StackMap stack:
aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
instanceof org.springframework.web.context.ConfigurableWebApplicationContext
ifeq 18
12: aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
checkcast org.springframework.web.context.ConfigurableWebApplicationContext
astore 5
start local 5 13: aload 5
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.isActive:()Z
ifne 18
14: aload 5
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.getParent:()Lorg/springframework/context/ApplicationContext;
ifnonnull 17
15: aload 0
aload 1
invokevirtual org.springframework.web.context.ContextLoader.loadParentContext:(Ljavax/servlet/ServletContext;)Lorg/springframework/context/ApplicationContext;
astore 6
start local 6 16: aload 5
aload 6
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setParent:(Lorg/springframework/context/ApplicationContext;)V
end local 6 17: StackMap locals: org.springframework.web.context.ConfigurableWebApplicationContext
StackMap stack:
aload 0
aload 5
aload 1
invokevirtual org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext:(Lorg/springframework/web/context/ConfigurableWebApplicationContext;Ljavax/servlet/ServletContext;)V
end local 5 18: StackMap locals:
StackMap stack:
aload 1
getstatic org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE:Ljava/lang/String;
aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
invokeinterface javax.servlet.ServletContext.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
19: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 5
start local 5 20: aload 5
ldc Lorg/springframework/web/context/ContextLoader;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
if_acmpne 23
21: aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
putstatic org.springframework.web.context.ContextLoader.currentContext:Lorg/springframework/web/context/WebApplicationContext;
22: goto 25
23: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 5
ifnull 25
24: getstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
aload 5
aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
25: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 28
26: invokestatic java.lang.System.currentTimeMillis:()J
lload 3
lsub
lstore 6
start local 6 27: aload 2
new java.lang.StringBuilder
dup
ldc "Root WebApplicationContext initialized in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 6
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " ms"
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.info:(Ljava/lang/Object;)V
end local 6 28: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
29: areturn
end local 5 30: StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext org.apache.commons.logging.Log long
StackMap stack: java.lang.Throwable
astore 5
start local 5 31: aload 2
ldc "Context initialization failed"
aload 5
invokeinterface org.apache.commons.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
32: aload 1
getstatic org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE:Ljava/lang/String;
aload 5
invokeinterface javax.servlet.ServletContext.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
33: aload 5
athrow
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/springframework/web/context/ContextLoader;
0 34 1 servletContext Ljavax/servlet/ServletContext;
6 34 2 logger Lorg/apache/commons/logging/Log;
9 34 3 startTime J
13 18 5 cwac Lorg/springframework/web/context/ConfigurableWebApplicationContext;
16 17 6 parent Lorg/springframework/context/ApplicationContext;
20 30 5 ccl Ljava/lang/ClassLoader;
27 28 6 elapsedTime J
31 34 5 ex Ljava/lang/Throwable;
Exception table:
from to target type
9 29 30 Class java.lang.RuntimeException
9 29 30 Class java.lang.Error
MethodParameters:
Name Flags
servletContext
protected org.springframework.web.context.WebApplicationContext createWebApplicationContext(javax.servlet.ServletContext);
descriptor: (Ljavax/servlet/ServletContext;)Lorg/springframework/web/context/WebApplicationContext;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.springframework.web.context.ContextLoader.determineContextClass:(Ljavax/servlet/ServletContext;)Ljava/lang/Class;
astore 2
start local 2 1: ldc Lorg/springframework/web/context/ConfigurableWebApplicationContext;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 5
2: new org.springframework.context.ApplicationContextException
dup
new java.lang.StringBuilder
dup
ldc "Custom context class ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "] is not of type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc Lorg/springframework/web/context/ConfigurableWebApplicationContext;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Class
StackMap stack:
aload 2
invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.springframework.web.context.ConfigurableWebApplicationContext
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/web/context/ContextLoader;
0 6 1 sc Ljavax/servlet/ServletContext;
1 6 2 contextClass Ljava/lang/Class<*>;
MethodParameters:
Name Flags
sc
protected java.lang.Class<?> determineContextClass(javax.servlet.ServletContext);
descriptor: (Ljavax/servlet/ServletContext;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc "contextClass"
invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnull 8
2: aload 2
invokestatic org.springframework.util.ClassUtils.getDefaultClassLoader:()Ljava/lang/ClassLoader;
invokestatic org.springframework.util.ClassUtils.forName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
3: areturn
4: StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext java.lang.String
StackMap stack: java.lang.ClassNotFoundException
astore 3
start local 3 5: new org.springframework.context.ApplicationContextException
dup
6: new java.lang.StringBuilder
dup
ldc "Failed to load custom context class ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
7: invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 8: StackMap locals:
StackMap stack:
getstatic org.springframework.web.context.ContextLoader.defaultStrategies:Ljava/util/Properties;
ldc Lorg/springframework/web/context/WebApplicationContext;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 2
9: aload 2
ldc Lorg/springframework/web/context/ContextLoader;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokestatic org.springframework.util.ClassUtils.forName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
10: areturn
11: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 3
start local 3 12: new org.springframework.context.ApplicationContextException
dup
13: new java.lang.StringBuilder
dup
ldc "Failed to load default context class ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
14: invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/springframework/web/context/ContextLoader;
0 15 1 servletContext Ljavax/servlet/ServletContext;
1 15 2 contextClassName Ljava/lang/String;
5 8 3 ex Ljava/lang/ClassNotFoundException;
12 15 3 ex Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
2 3 4 Class java.lang.ClassNotFoundException
9 10 11 Class java.lang.ClassNotFoundException
Signature: (Ljavax/servlet/ServletContext;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
servletContext
protected void configureAndRefreshWebApplicationContext(org.springframework.web.context.ConfigurableWebApplicationContext, javax.servlet.ServletContext);
descriptor: (Lorg/springframework/web/context/ConfigurableWebApplicationContext;Ljavax/servlet/ServletContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic org.springframework.util.ObjectUtils.identityToString:(Ljava/lang/Object;)Ljava/lang/String;
aload 1
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.getId:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
1: aload 2
ldc "contextId"
invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 2: aload 3
ifnull 5
3: aload 1
aload 3
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setId:(Ljava/lang/String;)V
4: goto 8
5: StackMap locals: java.lang.String
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
getstatic org.springframework.web.context.ConfigurableWebApplicationContext.APPLICATION_CONTEXT_ID_PREFIX:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 2
invokeinterface javax.servlet.ServletContext.getContextPath:()Ljava/lang/String;
invokestatic org.springframework.util.ObjectUtils.getDisplayString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setId:(Ljava/lang/String;)V
end local 3 8: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setServletContext:(Ljavax/servlet/ServletContext;)V
9: aload 2
ldc "contextConfigLocation"
invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 10: aload 3
ifnull 12
11: aload 1
aload 3
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setConfigLocation:(Ljava/lang/String;)V
12: StackMap locals: java.lang.String
StackMap stack:
aload 1
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.getEnvironment:()Lorg/springframework/core/env/ConfigurableEnvironment;
astore 4
start local 4 13: aload 4
instanceof org.springframework.web.context.ConfigurableWebEnvironment
ifeq 15
14: aload 4
checkcast org.springframework.web.context.ConfigurableWebEnvironment
aload 2
aconst_null
invokeinterface org.springframework.web.context.ConfigurableWebEnvironment.initPropertySources:(Ljavax/servlet/ServletContext;Ljavax/servlet/ServletConfig;)V
15: StackMap locals: org.springframework.core.env.ConfigurableEnvironment
StackMap stack:
aload 0
aload 2
aload 1
invokevirtual org.springframework.web.context.ContextLoader.customizeContext:(Ljavax/servlet/ServletContext;Lorg/springframework/web/context/ConfigurableWebApplicationContext;)V
16: aload 1
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.refresh:()V
17: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/springframework/web/context/ContextLoader;
0 18 1 wac Lorg/springframework/web/context/ConfigurableWebApplicationContext;
0 18 2 sc Ljavax/servlet/ServletContext;
2 8 3 idParam Ljava/lang/String;
10 18 3 configLocationParam Ljava/lang/String;
13 18 4 env Lorg/springframework/core/env/ConfigurableEnvironment;
MethodParameters:
Name Flags
wac
sc
protected void customizeContext(javax.servlet.ServletContext, org.springframework.web.context.ConfigurableWebApplicationContext);
descriptor: (Ljavax/servlet/ServletContext;Lorg/springframework/web/context/ConfigurableWebApplicationContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.springframework.web.context.ContextLoader.determineContextInitializerClasses:(Ljavax/servlet/ServletContext;)Ljava/util/List;
1: astore 3
start local 3 2: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 13
StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext org.springframework.web.context.ConfigurableWebApplicationContext java.util.List top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 4
start local 4 4: aload 4
ldc Lorg/springframework/context/ApplicationContextInitializer;
invokestatic org.springframework.core.GenericTypeResolver.resolveTypeArgument:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
5: astore 6
start local 6 6: aload 6
ifnull 12
aload 6
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 12
7: new org.springframework.context.ApplicationContextException
dup
8: ldc "Could not apply context initializer [%s] since its generic parameter [%s] is not assignable from the type of application context used by this context loader: [%s]"
iconst_3
anewarray java.lang.Object
dup
iconst_0
9: aload 4
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 6
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_2
10: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
11: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext org.springframework.web.context.ConfigurableWebApplicationContext java.util.List java.lang.Class java.util.Iterator java.lang.Class
StackMap stack:
aload 0
getfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
aload 4
invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.springframework.context.ApplicationContextInitializer
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 4 13: StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext org.springframework.web.context.ConfigurableWebApplicationContext java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
14: aload 0
getfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
invokestatic org.springframework.core.annotation.AnnotationAwareOrderComparator.sort:(Ljava/util/List;)V
15: aload 0
getfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 18
StackMap locals:
StackMap stack:
16: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.context.ApplicationContextInitializer
astore 4
start local 4 17: aload 4
aload 2
invokeinterface org.springframework.context.ApplicationContextInitializer.initialize:(Lorg/springframework/context/ConfigurableApplicationContext;)V
end local 4 18: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
19: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/springframework/web/context/ContextLoader;
0 20 1 sc Ljavax/servlet/ServletContext;
0 20 2 wac Lorg/springframework/web/context/ConfigurableWebApplicationContext;
2 20 3 initializerClasses Ljava/util/List<Ljava/lang/Class<Lorg/springframework/context/ApplicationContextInitializer<Lorg/springframework/context/ConfigurableApplicationContext;>;>;>;
4 13 4 initializerClass Ljava/lang/Class<Lorg/springframework/context/ApplicationContextInitializer<Lorg/springframework/context/ConfigurableApplicationContext;>;>;
6 13 6 initializerContextClass Ljava/lang/Class<*>;
17 18 4 initializer Lorg/springframework/context/ApplicationContextInitializer<Lorg/springframework/context/ConfigurableApplicationContext;>;
MethodParameters:
Name Flags
sc
wac
protected java.util.List<java.lang.Class<org.springframework.context.ApplicationContextInitializer<org.springframework.context.ConfigurableApplicationContext>>> determineContextInitializerClasses(javax.servlet.ServletContext);
descriptor: (Ljavax/servlet/ServletContext;)Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
1: astore 2
start local 2 2: aload 1
ldc "globalInitializerClasses"
invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 3: aload 3
ifnull 9
4: aload 3
ldc ",; \t\n"
invokestatic org.springframework.util.StringUtils.tokenizeToStringArray:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 8
StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext java.util.List java.lang.String top int int java.lang.String[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 2
aload 0
aload 4
invokevirtual org.springframework.web.context.ContextLoader.loadInitializerClass:(Ljava/lang/String;)Ljava/lang/Class;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 6
if_icmplt 5
9: StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext java.util.List java.lang.String
StackMap stack:
aload 1
ldc "contextInitializerClasses"
invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 10: aload 4
ifnull 16
11: aload 4
ldc ",; \t\n"
invokestatic org.springframework.util.StringUtils.tokenizeToStringArray:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 15
StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext java.util.List java.lang.String java.lang.String top int int java.lang.String[]
StackMap stack:
12: aload 8
iload 6
aaload
astore 5
start local 5 13: aload 2
aload 0
aload 5
invokevirtual org.springframework.web.context.ContextLoader.loadInitializerClass:(Ljava/lang/String;)Ljava/lang/Class;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 14: iinc 6 1
StackMap locals:
StackMap stack:
15: iload 6
iload 7
if_icmplt 12
16: StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext java.util.List java.lang.String java.lang.String
StackMap stack:
aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/web/context/ContextLoader;
0 17 1 servletContext Ljavax/servlet/ServletContext;
2 17 2 classes Ljava/util/List<Ljava/lang/Class<Lorg/springframework/context/ApplicationContextInitializer<Lorg/springframework/context/ConfigurableApplicationContext;>;>;>;
3 17 3 globalClassNames Ljava/lang/String;
6 7 4 className Ljava/lang/String;
10 17 4 localClassNames Ljava/lang/String;
13 14 5 className Ljava/lang/String;
Signature: (Ljavax/servlet/ServletContext;)Ljava/util/List<Ljava/lang/Class<Lorg/springframework/context/ApplicationContextInitializer<Lorg/springframework/context/ConfigurableApplicationContext;>;>;>;
MethodParameters:
Name Flags
servletContext
private java.lang.Class<org.springframework.context.ApplicationContextInitializer<org.springframework.context.ConfigurableApplicationContext>> loadInitializerClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.springframework.util.ClassUtils.getDefaultClassLoader:()Ljava/lang/ClassLoader;
invokestatic org.springframework.util.ClassUtils.forName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
astore 2
start local 2 1: ldc Lorg/springframework/context/ApplicationContextInitializer;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 5
2: new org.springframework.context.ApplicationContextException
dup
3: new java.lang.StringBuilder
dup
ldc "Initializer class does not implement ApplicationContextInitializer interface: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Class
StackMap stack:
aload 2
6: areturn
end local 2 7: StackMap locals: org.springframework.web.context.ContextLoader java.lang.String
StackMap stack: java.lang.ClassNotFoundException
astore 2
start local 2 8: new org.springframework.context.ApplicationContextException
dup
new java.lang.StringBuilder
dup
ldc "Failed to load context initializer class ["
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;
aload 2
invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/web/context/ContextLoader;
0 9 1 className Ljava/lang/String;
1 7 2 clazz Ljava/lang/Class<*>;
8 9 2 ex Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
0 6 7 Class java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<Lorg/springframework/context/ApplicationContextInitializer<Lorg/springframework/context/ConfigurableApplicationContext;>;>;
MethodParameters:
Name Flags
className
protected org.springframework.context.ApplicationContext loadParentContext(javax.servlet.ServletContext);
descriptor: (Ljavax/servlet/ServletContext;)Lorg/springframework/context/ApplicationContext;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/context/ContextLoader;
0 1 1 servletContext Ljavax/servlet/ServletContext;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
servletContext
public void closeWebApplicationContext(javax.servlet.ServletContext);
descriptor: (Ljavax/servlet/ServletContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc "Closing Spring root WebApplicationContext"
invokeinterface javax.servlet.ServletContext.log:(Ljava/lang/String;)V
1: aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
instanceof org.springframework.web.context.ConfigurableWebApplicationContext
ifeq 13
2: aload 0
getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
checkcast org.springframework.web.context.ConfigurableWebApplicationContext
invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.close:()V
3: goto 13
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
5: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 6: aload 3
ldc Lorg/springframework/web/context/ContextLoader;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
if_acmpne 9
7: aconst_null
putstatic org.springframework.web.context.ContextLoader.currentContext:Lorg/springframework/web/context/WebApplicationContext;
8: goto 11
9: StackMap locals: java.lang.Throwable java.lang.ClassLoader
StackMap stack:
aload 3
ifnull 11
10: getstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals:
StackMap stack:
aload 1
getstatic org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE:Ljava/lang/String;
invokeinterface javax.servlet.ServletContext.removeAttribute:(Ljava/lang/String;)V
end local 3 12: aload 2
athrow
13: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 14: aload 3
ldc Lorg/springframework/web/context/ContextLoader;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
if_acmpne 17
15: aconst_null
putstatic org.springframework.web.context.ContextLoader.currentContext:Lorg/springframework/web/context/WebApplicationContext;
16: goto 19
17: StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext top java.lang.ClassLoader
StackMap stack:
aload 3
ifnull 19
18: getstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
19: StackMap locals:
StackMap stack:
aload 1
getstatic org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE:Ljava/lang/String;
invokeinterface javax.servlet.ServletContext.removeAttribute:(Ljava/lang/String;)V
end local 3 20: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/springframework/web/context/ContextLoader;
0 21 1 servletContext Ljavax/servlet/ServletContext;
6 12 3 ccl Ljava/lang/ClassLoader;
14 20 3 ccl Ljava/lang/ClassLoader;
Exception table:
from to target type
1 4 4 any
MethodParameters:
Name Flags
servletContext
public static org.springframework.web.context.WebApplicationContext getCurrentWebApplicationContext();
descriptor: ()Lorg/springframework/web/context/WebApplicationContext;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 0
start local 0 1: aload 0
ifnull 5
2: getstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.web.context.WebApplicationContext
astore 1
start local 1 3: aload 1
ifnull 5
4: aload 1
areturn
end local 1 5: StackMap locals: java.lang.ClassLoader
StackMap stack:
getstatic org.springframework.web.context.ContextLoader.currentContext:Lorg/springframework/web/context/WebApplicationContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 6 0 ccl Ljava/lang/ClassLoader;
3 5 1 ccpt Lorg/springframework/web/context/WebApplicationContext;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
}
SourceFile: "ContextLoader.java"