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: .line 142
            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 /* resource */
        start local 0 // org.springframework.core.io.ClassPathResource resource
         1: .line 143
            aload 0 /* resource */
            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 // org.springframework.core.io.ClassPathResource resource
         2: .line 144
            goto 5
         3: .line 145
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 0 /* ex */
        start local 0 // java.io.IOException ex
         4: .line 146
            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 /* ex */
            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 // java.io.IOException ex
         5: .line 155
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ConcurrentHashMap
            dup
            iconst_1
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
         6: .line 154
            putstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
         7: .line 162
            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 // org.springframework.web.context.ContextLoader this
         0: .line 191
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 172
            aload 0 /* this */
         2: .line 173
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
         3: .line 192
            return
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // org.springframework.web.context.WebApplicationContext context
         0: .line 227
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 172
            aload 0 /* this */
         2: .line 173
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
         3: .line 228
            aload 0 /* this */
            aload 1 /* context */
            putfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
         4: .line 229
            return
        end local 1 // org.springframework.web.context.WebApplicationContext context
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // org.springframework.context.ApplicationContextInitializer[] initializers
         0: .line 241
            aload 1 /* initializers */
            ifnull 6
         1: .line 242
            aload 1 /* initializers */
            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 /* initializer */
        start local 2 // org.springframework.context.ApplicationContextInitializer initializer
         3: .line 243
            aload 0 /* this */
            getfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
            aload 2 /* initializer */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.springframework.context.ApplicationContextInitializer initializer
         4: .line 242
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 246
      StackMap locals: org.springframework.web.context.ContextLoader org.springframework.context.ApplicationContextInitializer[]
      StackMap stack:
            return
        end local 1 // org.springframework.context.ApplicationContextInitializer[] initializers
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // javax.servlet.ServletContext servletContext
         0: .line 261
            aload 1 /* servletContext */
            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: .line 262
            new java.lang.IllegalStateException
            dup
         2: .line 263
            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: .line 262
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 267
      StackMap locals:
      StackMap stack:
            aload 1 /* servletContext */
            ldc "Initializing Spring root WebApplicationContext"
            invokeinterface javax.servlet.ServletContext.log:(Ljava/lang/String;)V
         5: .line 268
            ldc Lorg/springframework/web/context/ContextLoader;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            astore 2 /* logger */
        start local 2 // org.apache.commons.logging.Log logger
         6: .line 269
            aload 2 /* logger */
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 8
         7: .line 270
            aload 2 /* logger */
            ldc "Root WebApplicationContext: initialization started"
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
         8: .line 272
      StackMap locals: org.apache.commons.logging.Log
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 3 /* startTime */
        start local 3 // long startTime
         9: .line 277
            aload 0 /* this */
            getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
            ifnonnull 11
        10: .line 278
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* servletContext */
            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: .line 280
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
            instanceof org.springframework.web.context.ConfigurableWebApplicationContext
            ifeq 18
        12: .line 281
            aload 0 /* this */
            getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
            checkcast org.springframework.web.context.ConfigurableWebApplicationContext
            astore 5 /* cwac */
        start local 5 // org.springframework.web.context.ConfigurableWebApplicationContext cwac
        13: .line 282
            aload 5 /* cwac */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.isActive:()Z
            ifne 18
        14: .line 285
            aload 5 /* cwac */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.getParent:()Lorg/springframework/context/ApplicationContext;
            ifnonnull 17
        15: .line 288
            aload 0 /* this */
            aload 1 /* servletContext */
            invokevirtual org.springframework.web.context.ContextLoader.loadParentContext:(Ljavax/servlet/ServletContext;)Lorg/springframework/context/ApplicationContext;
            astore 6 /* parent */
        start local 6 // org.springframework.context.ApplicationContext parent
        16: .line 289
            aload 5 /* cwac */
            aload 6 /* parent */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setParent:(Lorg/springframework/context/ApplicationContext;)V
        end local 6 // org.springframework.context.ApplicationContext parent
        17: .line 291
      StackMap locals: org.springframework.web.context.ConfigurableWebApplicationContext
      StackMap stack:
            aload 0 /* this */
            aload 5 /* cwac */
            aload 1 /* servletContext */
            invokevirtual org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext:(Lorg/springframework/web/context/ConfigurableWebApplicationContext;Ljavax/servlet/ServletContext;)V
        end local 5 // org.springframework.web.context.ConfigurableWebApplicationContext cwac
        18: .line 294
      StackMap locals:
      StackMap stack:
            aload 1 /* servletContext */
            getstatic org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE:Ljava/lang/String;
            aload 0 /* this */
            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: .line 296
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* ccl */
        start local 5 // java.lang.ClassLoader ccl
        20: .line 297
            aload 5 /* ccl */
            ldc Lorg/springframework/web/context/ContextLoader;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            if_acmpne 23
        21: .line 298
            aload 0 /* this */
            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: .line 299
            goto 25
        23: .line 300
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 5 /* ccl */
            ifnull 25
        24: .line 301
            getstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
            aload 5 /* ccl */
            aload 0 /* this */
            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: .line 304
      StackMap locals:
      StackMap stack:
            aload 2 /* logger */
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 28
        26: .line 305
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 3 /* startTime */
            lsub
            lstore 6 /* elapsedTime */
        start local 6 // long elapsedTime
        27: .line 306
            aload 2 /* logger */
            new java.lang.StringBuilder
            dup
            ldc "Root WebApplicationContext initialized in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 6 /* elapsedTime */
            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 // long elapsedTime
        28: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
        29: areturn
        end local 5 // java.lang.ClassLoader ccl
        30: .line 311
      StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext org.apache.commons.logging.Log long
      StackMap stack: java.lang.Throwable
            astore 5 /* ex */
        start local 5 // java.lang.Throwable ex
        31: .line 312
            aload 2 /* logger */
            ldc "Context initialization failed"
            aload 5 /* ex */
            invokeinterface org.apache.commons.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        32: .line 313
            aload 1 /* servletContext */
            getstatic org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE:Ljava/lang/String;
            aload 5 /* ex */
            invokeinterface javax.servlet.ServletContext.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        33: .line 314
            aload 5 /* ex */
            athrow
        end local 5 // java.lang.Throwable ex
        end local 3 // long startTime
        end local 2 // org.apache.commons.logging.Log logger
        end local 1 // javax.servlet.ServletContext servletContext
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // javax.servlet.ServletContext sc
         0: .line 331
            aload 0 /* this */
            aload 1 /* sc */
            invokevirtual org.springframework.web.context.ContextLoader.determineContextClass:(Ljavax/servlet/ServletContext;)Ljava/lang/Class;
            astore 2 /* contextClass */
        start local 2 // java.lang.Class contextClass
         1: .line 332
            ldc Lorg/springframework/web/context/ConfigurableWebApplicationContext;
            aload 2 /* contextClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 5
         2: .line 333
            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 /* contextClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 334
            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: .line 333
            invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 336
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* contextClass */
            invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.springframework.web.context.ConfigurableWebApplicationContext
            areturn
        end local 2 // java.lang.Class contextClass
        end local 1 // javax.servlet.ServletContext sc
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // javax.servlet.ServletContext servletContext
         0: .line 348
            aload 1 /* servletContext */
            ldc "contextClass"
            invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* contextClassName */
        start local 2 // java.lang.String contextClassName
         1: .line 349
            aload 2 /* contextClassName */
            ifnull 8
         2: .line 351
            aload 2 /* contextClassName */
            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: .line 353
      StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            astore 3 /* ex */
        start local 3 // java.lang.ClassNotFoundException ex
         5: .line 354
            new org.springframework.context.ApplicationContextException
            dup
         6: .line 355
            new java.lang.StringBuilder
            dup
            ldc "Failed to load custom context class ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* contextClassName */
            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 /* ex */
         7: .line 354
            invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.ClassNotFoundException ex
         8: .line 359
      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 /* contextClassName */
         9: .line 361
            aload 2 /* contextClassName */
            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: .line 363
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 3 /* ex */
        start local 3 // java.lang.ClassNotFoundException ex
        12: .line 364
            new org.springframework.context.ApplicationContextException
            dup
        13: .line 365
            new java.lang.StringBuilder
            dup
            ldc "Failed to load default context class ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* contextClassName */
            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 /* ex */
        14: .line 364
            invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.ClassNotFoundException ex
        end local 2 // java.lang.String contextClassName
        end local 1 // javax.servlet.ServletContext servletContext
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // org.springframework.web.context.ConfigurableWebApplicationContext wac
        start local 2 // javax.servlet.ServletContext sc
         0: .line 371
            aload 1 /* wac */
            invokestatic org.springframework.util.ObjectUtils.identityToString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 1 /* wac */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.getId:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         1: .line 374
            aload 2 /* sc */
            ldc "contextId"
            invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* idParam */
        start local 3 // java.lang.String idParam
         2: .line 375
            aload 3 /* idParam */
            ifnull 5
         3: .line 376
            aload 1 /* wac */
            aload 3 /* idParam */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setId:(Ljava/lang/String;)V
         4: .line 377
            goto 8
         5: .line 380
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* wac */
            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: .line 381
            aload 2 /* sc */
            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: .line 380
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setId:(Ljava/lang/String;)V
        end local 3 // java.lang.String idParam
         8: .line 385
      StackMap locals:
      StackMap stack:
            aload 1 /* wac */
            aload 2 /* sc */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setServletContext:(Ljavax/servlet/ServletContext;)V
         9: .line 386
            aload 2 /* sc */
            ldc "contextConfigLocation"
            invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* configLocationParam */
        start local 3 // java.lang.String configLocationParam
        10: .line 387
            aload 3 /* configLocationParam */
            ifnull 12
        11: .line 388
            aload 1 /* wac */
            aload 3 /* configLocationParam */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.setConfigLocation:(Ljava/lang/String;)V
        12: .line 394
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* wac */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.getEnvironment:()Lorg/springframework/core/env/ConfigurableEnvironment;
            astore 4 /* env */
        start local 4 // org.springframework.core.env.ConfigurableEnvironment env
        13: .line 395
            aload 4 /* env */
            instanceof org.springframework.web.context.ConfigurableWebEnvironment
            ifeq 15
        14: .line 396
            aload 4 /* env */
            checkcast org.springframework.web.context.ConfigurableWebEnvironment
            aload 2 /* sc */
            aconst_null
            invokeinterface org.springframework.web.context.ConfigurableWebEnvironment.initPropertySources:(Ljavax/servlet/ServletContext;Ljavax/servlet/ServletConfig;)V
        15: .line 399
      StackMap locals: org.springframework.core.env.ConfigurableEnvironment
      StackMap stack:
            aload 0 /* this */
            aload 2 /* sc */
            aload 1 /* wac */
            invokevirtual org.springframework.web.context.ContextLoader.customizeContext:(Ljavax/servlet/ServletContext;Lorg/springframework/web/context/ConfigurableWebApplicationContext;)V
        16: .line 400
            aload 1 /* wac */
            invokeinterface org.springframework.web.context.ConfigurableWebApplicationContext.refresh:()V
        17: .line 401
            return
        end local 4 // org.springframework.core.env.ConfigurableEnvironment env
        end local 3 // java.lang.String configLocationParam
        end local 2 // javax.servlet.ServletContext sc
        end local 1 // org.springframework.web.context.ConfigurableWebApplicationContext wac
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // javax.servlet.ServletContext sc
        start local 2 // org.springframework.web.context.ConfigurableWebApplicationContext wac
         0: .line 422
            aload 0 /* this */
            aload 1 /* sc */
            invokevirtual org.springframework.web.context.ContextLoader.determineContextInitializerClasses:(Ljavax/servlet/ServletContext;)Ljava/util/List;
         1: .line 421
            astore 3 /* initializerClasses */
        start local 3 // java.util.List initializerClasses
         2: .line 424
            aload 3 /* initializerClasses */
            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 /* initializerClass */
        start local 4 // java.lang.Class initializerClass
         4: .line 426
            aload 4 /* initializerClass */
            ldc Lorg/springframework/context/ApplicationContextInitializer;
            invokestatic org.springframework.core.GenericTypeResolver.resolveTypeArgument:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
         5: .line 425
            astore 6 /* initializerContextClass */
        start local 6 // java.lang.Class initializerContextClass
         6: .line 427
            aload 6 /* initializerContextClass */
            ifnull 12
            aload 6 /* initializerContextClass */
            aload 2 /* wac */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 12
         7: .line 428
            new org.springframework.context.ApplicationContextException
            dup
         8: .line 429
            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: .line 431
            aload 4 /* initializerClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 6 /* initializerContextClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
        10: .line 432
            aload 2 /* wac */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        11: .line 428
            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: .line 434
      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 /* this */
            getfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
            aload 4 /* initializerClass */
            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 // java.lang.Class initializerContextClass
        end local 4 // java.lang.Class initializerClass
        13: .line 424
      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: .line 437
            aload 0 /* this */
            getfield org.springframework.web.context.ContextLoader.contextInitializers:Ljava/util/List;
            invokestatic org.springframework.core.annotation.AnnotationAwareOrderComparator.sort:(Ljava/util/List;)V
        15: .line 438
            aload 0 /* this */
            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 /* initializer */
        start local 4 // org.springframework.context.ApplicationContextInitializer initializer
        17: .line 439
            aload 4 /* initializer */
            aload 2 /* wac */
            invokeinterface org.springframework.context.ApplicationContextInitializer.initialize:(Lorg/springframework/context/ConfigurableApplicationContext;)V
        end local 4 // org.springframework.context.ApplicationContextInitializer initializer
        18: .line 438
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        19: .line 441
            return
        end local 3 // java.util.List initializerClasses
        end local 2 // org.springframework.web.context.ConfigurableWebApplicationContext wac
        end local 1 // javax.servlet.ServletContext sc
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // javax.servlet.ServletContext servletContext
         0: .line 453
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
         1: .line 452
            astore 2 /* classes */
        start local 2 // java.util.List classes
         2: .line 455
            aload 1 /* servletContext */
            ldc "globalInitializerClasses"
            invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* globalClassNames */
        start local 3 // java.lang.String globalClassNames
         3: .line 456
            aload 3 /* globalClassNames */
            ifnull 9
         4: .line 457
            aload 3 /* globalClassNames */
            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 /* className */
        start local 4 // java.lang.String className
         6: .line 458
            aload 2 /* classes */
            aload 0 /* this */
            aload 4 /* className */
            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 // java.lang.String className
         7: .line 457
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 5
         9: .line 462
      StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext java.util.List java.lang.String
      StackMap stack:
            aload 1 /* servletContext */
            ldc "contextInitializerClasses"
            invokeinterface javax.servlet.ServletContext.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* localClassNames */
        start local 4 // java.lang.String localClassNames
        10: .line 463
            aload 4 /* localClassNames */
            ifnull 16
        11: .line 464
            aload 4 /* localClassNames */
            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 /* className */
        start local 5 // java.lang.String className
        13: .line 465
            aload 2 /* classes */
            aload 0 /* this */
            aload 5 /* className */
            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 // java.lang.String className
        14: .line 464
            iinc 6 1
      StackMap locals:
      StackMap stack:
        15: iload 6
            iload 7
            if_icmplt 12
        16: .line 469
      StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext java.util.List java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* classes */
            areturn
        end local 4 // java.lang.String localClassNames
        end local 3 // java.lang.String globalClassNames
        end local 2 // java.util.List classes
        end local 1 // javax.servlet.ServletContext servletContext
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // java.lang.String className
         0: .line 475
            aload 1 /* className */
            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 /* clazz */
        start local 2 // java.lang.Class clazz
         1: .line 476
            ldc Lorg/springframework/context/ApplicationContextInitializer;
            aload 2 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 5
         2: .line 477
            new org.springframework.context.ApplicationContextException
            dup
         3: .line 478
            new java.lang.StringBuilder
            dup
            ldc "Initializer class does not implement ApplicationContextInitializer interface: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* clazz */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 477
            invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 480
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* clazz */
         6: areturn
        end local 2 // java.lang.Class clazz
         7: .line 482
      StackMap locals: org.springframework.web.context.ContextLoader java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            astore 2 /* ex */
        start local 2 // java.lang.ClassNotFoundException ex
         8: .line 483
            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 /* className */
            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 /* ex */
            invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.ClassNotFoundException ex
        end local 1 // java.lang.String className
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // javax.servlet.ServletContext servletContext
         0: .line 503
            aconst_null
            areturn
        end local 1 // javax.servlet.ServletContext servletContext
        end local 0 // org.springframework.web.context.ContextLoader this
      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 // org.springframework.web.context.ContextLoader this
        start local 1 // javax.servlet.ServletContext servletContext
         0: .line 513
            aload 1 /* servletContext */
            ldc "Closing Spring root WebApplicationContext"
            invokeinterface javax.servlet.ServletContext.log:(Ljava/lang/String;)V
         1: .line 515
            aload 0 /* this */
            getfield org.springframework.web.context.ContextLoader.context:Lorg/springframework/web/context/WebApplicationContext;
            instanceof org.springframework.web.context.ConfigurableWebApplicationContext
            ifeq 13
         2: .line 516
            aload 0 /* this */
            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: .line 518
            goto 13
         4: .line 519
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         5: .line 520
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* ccl */
        start local 3 // java.lang.ClassLoader ccl
         6: .line 521
            aload 3 /* ccl */
            ldc Lorg/springframework/web/context/ContextLoader;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            if_acmpne 9
         7: .line 522
            aconst_null
            putstatic org.springframework.web.context.ContextLoader.currentContext:Lorg/springframework/web/context/WebApplicationContext;
         8: .line 523
            goto 11
         9: .line 524
      StackMap locals: java.lang.Throwable java.lang.ClassLoader
      StackMap stack:
            aload 3 /* ccl */
            ifnull 11
        10: .line 525
            getstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
            aload 3 /* ccl */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 527
      StackMap locals:
      StackMap stack:
            aload 1 /* servletContext */
            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 // java.lang.ClassLoader ccl
        12: .line 528
            aload 2
            athrow
        13: .line 520
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* ccl */
        start local 3 // java.lang.ClassLoader ccl
        14: .line 521
            aload 3 /* ccl */
            ldc Lorg/springframework/web/context/ContextLoader;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            if_acmpne 17
        15: .line 522
            aconst_null
            putstatic org.springframework.web.context.ContextLoader.currentContext:Lorg/springframework/web/context/WebApplicationContext;
        16: .line 523
            goto 19
        17: .line 524
      StackMap locals: org.springframework.web.context.ContextLoader javax.servlet.ServletContext top java.lang.ClassLoader
      StackMap stack:
            aload 3 /* ccl */
            ifnull 19
        18: .line 525
            getstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
            aload 3 /* ccl */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 527
      StackMap locals:
      StackMap stack:
            aload 1 /* servletContext */
            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 // java.lang.ClassLoader ccl
        20: .line 529
            return
        end local 1 // javax.servlet.ServletContext servletContext
        end local 0 // org.springframework.web.context.ContextLoader this
      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: .line 542
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 0 /* ccl */
        start local 0 // java.lang.ClassLoader ccl
         1: .line 543
            aload 0 /* ccl */
            ifnull 5
         2: .line 544
            getstatic org.springframework.web.context.ContextLoader.currentContextPerThread:Ljava/util/Map;
            aload 0 /* ccl */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.web.context.WebApplicationContext
            astore 1 /* ccpt */
        start local 1 // org.springframework.web.context.WebApplicationContext ccpt
         3: .line 545
            aload 1 /* ccpt */
            ifnull 5
         4: .line 546
            aload 1 /* ccpt */
            areturn
        end local 1 // org.springframework.web.context.WebApplicationContext ccpt
         5: .line 549
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            getstatic org.springframework.web.context.ContextLoader.currentContext:Lorg/springframework/web/context/WebApplicationContext;
            areturn
        end local 0 // java.lang.ClassLoader ccl
      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"