public class org.springframework.boot.devtools.restart.classloader.RestartClassLoader extends java.net.URLClassLoader implements org.springframework.core.SmartClassLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.boot.devtools.restart.classloader.RestartClassLoader
  super_class: java.net.URLClassLoader
{
  private final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository updatedFiles;
    descriptor: Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.ClassLoader, java.net.URL[]);
    descriptor: (Ljava/lang/ClassLoader;[Ljava/net/URL;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.ClassLoader parent
        start local 2 // java.net.URL[] urls
         0: .line 54
            aload 0 /* this */
            aload 1 /* parent */
            aload 2 /* urls */
            getstatic org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository.NONE:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
            invokespecial org.springframework.boot.devtools.restart.classloader.RestartClassLoader.<init>:(Ljava/lang/ClassLoader;[Ljava/net/URL;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;)V
         1: .line 55
            return
        end local 2 // java.net.URL[] urls
        end local 1 // java.lang.ClassLoader parent
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    2     1  parent  Ljava/lang/ClassLoader;
            0    2     2    urls  [Ljava/net/URL;
    MethodParameters:
        Name  Flags
      parent  
      urls    

  public void <init>(java.lang.ClassLoader, java.net.URL[], org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository);
    descriptor: (Ljava/lang/ClassLoader;[Ljava/net/URL;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.ClassLoader parent
        start local 2 // java.net.URL[] urls
        start local 3 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository updatedFiles
         0: .line 65
            aload 0 /* this */
            aload 1 /* parent */
            aload 2 /* urls */
            aload 3 /* updatedFiles */
            ldc Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            invokespecial org.springframework.boot.devtools.restart.classloader.RestartClassLoader.<init>:(Ljava/lang/ClassLoader;[Ljava/net/URL;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;Lorg/apache/commons/logging/Log;)V
         1: .line 66
            return
        end local 3 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository updatedFiles
        end local 2 // java.net.URL[] urls
        end local 1 // java.lang.ClassLoader parent
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    2     1        parent  Ljava/lang/ClassLoader;
            0    2     2          urls  [Ljava/net/URL;
            0    2     3  updatedFiles  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
    MethodParameters:
              Name  Flags
      parent        
      urls          
      updatedFiles  

  public void <init>(java.lang.ClassLoader, java.net.URL[], org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository, org.apache.commons.logging.Log);
    descriptor: (Ljava/lang/ClassLoader;[Ljava/net/URL;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;Lorg/apache/commons/logging/Log;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.ClassLoader parent
        start local 2 // java.net.URL[] urls
        start local 3 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository updatedFiles
        start local 4 // org.apache.commons.logging.Log logger
         0: .line 77
            aload 0 /* this */
            aload 2 /* urls */
            aload 1 /* parent */
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
         1: .line 78
            aload 1 /* parent */
            ldc "Parent must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 79
            aload 3 /* updatedFiles */
            ldc "UpdatedFiles must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 80
            aload 4 /* logger */
            ldc "Logger must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         4: .line 81
            aload 0 /* this */
            aload 3 /* updatedFiles */
            putfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.updatedFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
         5: .line 82
            aload 0 /* this */
            aload 4 /* logger */
            putfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.logger:Lorg/apache/commons/logging/Log;
         6: .line 83
            aload 4 /* logger */
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 8
         7: .line 84
            aload 4 /* logger */
            new java.lang.StringBuilder
            dup
            ldc "Created RestartClassLoader "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            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.debug:(Ljava/lang/Object;)V
         8: .line 86
      StackMap locals: org.springframework.boot.devtools.restart.classloader.RestartClassLoader java.lang.ClassLoader java.net.URL[] org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository org.apache.commons.logging.Log
      StackMap stack:
            return
        end local 4 // org.apache.commons.logging.Log logger
        end local 3 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository updatedFiles
        end local 2 // java.net.URL[] urls
        end local 1 // java.lang.ClassLoader parent
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    9     1        parent  Ljava/lang/ClassLoader;
            0    9     2          urls  [Ljava/net/URL;
            0    9     3  updatedFiles  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
            0    9     4        logger  Lorg/apache/commons/logging/Log;
    MethodParameters:
              Name  Flags
      parent        
      urls          
      updatedFiles  
      logger        

  public java.util.Enumeration<java.net.URL> getResources(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Enumeration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.String name
         0: .line 91
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.getParent:()Ljava/lang/ClassLoader;
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 2 /* resources */
        start local 2 // java.util.Enumeration resources
         1: .line 92
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.updatedFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
            aload 1 /* name */
            invokeinterface org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository.getFile:(Ljava/lang/String;)Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
            astore 3 /* file */
        start local 3 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
         2: .line 93
            aload 3 /* file */
            ifnull 7
         3: .line 95
            aload 2 /* resources */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifeq 5
         4: .line 96
            aload 2 /* resources */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            pop
         5: .line 98
      StackMap locals: java.util.Enumeration org.springframework.boot.devtools.restart.classloader.ClassLoaderFile
      StackMap stack:
            aload 3 /* file */
            invokevirtual org.springframework.boot.devtools.restart.classloader.ClassLoaderFile.getKind:()Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            getstatic org.springframework.boot.devtools.restart.classloader.ClassLoaderFile$Kind.DELETED:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            if_acmpeq 7
         6: .line 99
            new org.springframework.boot.devtools.restart.classloader.RestartClassLoader$CompoundEnumeration
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* file */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.createFileUrl:(Ljava/lang/String;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;)Ljava/net/URL;
            aload 2 /* resources */
            invokespecial org.springframework.boot.devtools.restart.classloader.RestartClassLoader$CompoundEnumeration.<init>:(Ljava/lang/Object;Ljava/util/Enumeration;)V
            areturn
         7: .line 102
      StackMap locals:
      StackMap stack:
            aload 2 /* resources */
            areturn
        end local 3 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
        end local 2 // java.util.Enumeration resources
        end local 1 // java.lang.String name
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    8     1       name  Ljava/lang/String;
            1    8     2  resources  Ljava/util/Enumeration<Ljava/net/URL;>;
            2    8     3       file  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
    MethodParameters:
      Name  Flags
      name  

  public java.net.URL getResource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.String name
         0: .line 107
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.updatedFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
            aload 1 /* name */
            invokeinterface org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository.getFile:(Ljava/lang/String;)Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
            astore 2 /* file */
        start local 2 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
         1: .line 108
            aload 2 /* file */
            ifnull 3
            aload 2 /* file */
            invokevirtual org.springframework.boot.devtools.restart.classloader.ClassLoaderFile.getKind:()Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            getstatic org.springframework.boot.devtools.restart.classloader.ClassLoaderFile$Kind.DELETED:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            if_acmpne 3
         2: .line 109
            aconst_null
            areturn
         3: .line 111
      StackMap locals: org.springframework.boot.devtools.restart.classloader.ClassLoaderFile
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 3 /* resource */
        start local 3 // java.net.URL resource
         4: .line 112
            aload 3 /* resource */
            ifnull 6
         5: .line 113
            aload 3 /* resource */
            areturn
         6: .line 115
      StackMap locals: java.net.URL
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.getParent:()Ljava/lang/ClassLoader;
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            areturn
        end local 3 // java.net.URL resource
        end local 2 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
        end local 1 // java.lang.String name
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    7     1      name  Ljava/lang/String;
            1    7     2      file  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
            4    7     3  resource  Ljava/net/URL;
    MethodParameters:
      Name  Flags
      name  

  public java.net.URL findResource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.String name
         0: .line 120
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.updatedFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
            aload 1 /* name */
            invokeinterface org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository.getFile:(Ljava/lang/String;)Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
            astore 2 /* file */
        start local 2 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
         1: .line 121
            aload 2 /* file */
            ifnonnull 3
         2: .line 122
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.net.URLClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
            areturn
         3: .line 124
      StackMap locals: org.springframework.boot.devtools.restart.classloader.ClassLoaderFile
      StackMap stack:
            aload 2 /* file */
            invokevirtual org.springframework.boot.devtools.restart.classloader.ClassLoaderFile.getKind:()Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            getstatic org.springframework.boot.devtools.restart.classloader.ClassLoaderFile$Kind.DELETED:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            if_acmpne 5
         4: .line 125
            aconst_null
            areturn
         5: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* file */
            invokedynamic run(Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;Ljava/lang/String;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;)Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/boot/devtools/restart/classloader/RestartClassLoader.lambda$0(Ljava/lang/String;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;)Ljava/net/URL; (7)
                  ()Ljava/net/URL;
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.net.URL
            areturn
        end local 2 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
        end local 1 // java.lang.String name
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    6     1  name  Ljava/lang/String;
            1    6     2  file  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.Class<?> loadClass(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean resolve
         0: .line 132
            aload 1 /* name */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            ldc ".class"
            invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         1: .line 133
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.updatedFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
            aload 3 /* path */
            invokeinterface org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository.getFile:(Ljava/lang/String;)Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
            astore 4 /* file */
        start local 4 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
         2: .line 134
            aload 4 /* file */
            ifnull 4
            aload 4 /* file */
            invokevirtual org.springframework.boot.devtools.restart.classloader.ClassLoaderFile.getKind:()Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            getstatic org.springframework.boot.devtools.restart.classloader.ClassLoaderFile$Kind.DELETED:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            if_acmpne 4
         3: .line 135
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 137
      StackMap locals: java.lang.String org.springframework.boot.devtools.restart.classloader.ClassLoaderFile
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.getClassLoadingLock:(Ljava/lang/String;)Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         5: .line 138
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* loadedClass */
        start local 6 // java.lang.Class loadedClass
         6: .line 139
            aload 6 /* loadedClass */
            ifnonnull 11
         7: .line 141
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* loadedClass */
         8: .line 142
            goto 11
         9: .line 143
      StackMap locals: org.springframework.boot.devtools.restart.classloader.RestartClassLoader java.lang.String int java.lang.String org.springframework.boot.devtools.restart.classloader.ClassLoaderFile java.lang.Object java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
            pop
        10: .line 144
            aload 1 /* name */
            iconst_0
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.getParent:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 6 /* loadedClass */
        11: .line 147
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 13
        12: .line 148
            aload 0 /* this */
            aload 6 /* loadedClass */
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.resolveClass:(Ljava/lang/Class;)V
        13: .line 150
      StackMap locals:
      StackMap stack:
            aload 6 /* loadedClass */
            aload 5
            monitorexit
        14: areturn
        end local 6 // java.lang.Class loadedClass
        15: .line 137
      StackMap locals: org.springframework.boot.devtools.restart.classloader.RestartClassLoader java.lang.String int java.lang.String org.springframework.boot.devtools.restart.classloader.ClassLoaderFile java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        16: athrow
        end local 4 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
        end local 3 // java.lang.String path
        end local 2 // boolean resolve
        end local 1 // java.lang.String name
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0   17     1         name  Ljava/lang/String;
            0   17     2      resolve  Z
            1   17     3         path  Ljava/lang/String;
            2   17     4         file  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
            6   15     6  loadedClass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.ClassNotFoundException
           5    14      15  any
          15    16      15  any
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      name     
      resolve  

  protected java.lang.Class<?> findClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.String name
         0: .line 156
            aload 1 /* name */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            ldc ".class"
            invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         1: .line 157
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.updatedFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFileRepository;
            aload 2 /* path */
            invokeinterface org.springframework.boot.devtools.restart.classloader.ClassLoaderFileRepository.getFile:(Ljava/lang/String;)Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
            astore 3 /* file */
        start local 3 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
         2: .line 158
            aload 3 /* file */
            ifnonnull 4
         3: .line 159
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.net.URLClassLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
         4: .line 161
      StackMap locals: java.lang.String org.springframework.boot.devtools.restart.classloader.ClassLoaderFile
      StackMap stack:
            aload 3 /* file */
            invokevirtual org.springframework.boot.devtools.restart.classloader.ClassLoaderFile.getKind:()Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            getstatic org.springframework.boot.devtools.restart.classloader.ClassLoaderFile$Kind.DELETED:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile$Kind;
            if_acmpne 6
         5: .line 162
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* file */
            aload 1 /* name */
            invokedynamic run(Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;Ljava/lang/String;)Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/boot/devtools/restart/classloader/RestartClassLoader.lambda$1(Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;Ljava/lang/String;)Ljava/lang/Class; (7)
                  ()Ljava/lang/Class;
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Class
            areturn
        end local 3 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
        end local 2 // java.lang.String path
        end local 1 // java.lang.String name
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    7     1  name  Ljava/lang/String;
            1    7     2  path  Ljava/lang/String;
            2    7     3  file  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      name  

  private java.net.URL createFileUrl(java.lang.String, org.springframework.boot.devtools.restart.classloader.ClassLoaderFile);
    descriptor: (Ljava/lang/String;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;)Ljava/net/URL;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=4, args_size=3
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.String name
        start local 2 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
         0: .line 172
            new java.net.URL
            dup
            ldc "reloaded"
            aconst_null
            iconst_m1
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            new org.springframework.boot.devtools.restart.classloader.ClassLoaderFileURLStreamHandler
            dup
            aload 2 /* file */
            invokespecial org.springframework.boot.devtools.restart.classloader.ClassLoaderFileURLStreamHandler.<init>:(Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;)V
            invokespecial java.net.URL.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/net/URLStreamHandler;)V
         1: areturn
         2: .line 174
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            astore 3 /* ex */
        start local 3 // java.net.MalformedURLException ex
         3: .line 175
            new java.lang.IllegalStateException
            dup
            aload 3 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.net.MalformedURLException ex
        end local 2 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFile file
        end local 1 // java.lang.String name
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    4     1  name  Ljava/lang/String;
            0    4     2  file  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;
            3    4     3    ex  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.MalformedURLException
    MethodParameters:
      Name  Flags
      name  
      file  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
         0: .line 181
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 182
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.classloader.RestartClassLoader.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Finalized classloader "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            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.debug:(Ljava/lang/Object;)V
         2: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         3: .line 185
            return
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
    Exceptions:
      throws java.lang.Throwable

  public boolean isClassReloadable(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
        start local 1 // java.lang.Class classType
         0: .line 189
            aload 1 /* classType */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            instanceof org.springframework.boot.devtools.restart.classloader.RestartClassLoader
            ireturn
        end local 1 // java.lang.Class classType
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            0    1     1  classType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
           Name  Flags
      classType  

  private java.net.URL lambda$0(java.lang.String, org.springframework.boot.devtools.restart.classloader.ClassLoaderFile);
    descriptor: (Ljava/lang/String;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;)Ljava/net/URL;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
         0: .line 127
            aload 0 /* this */
            aload 1
            aload 2
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.createFileUrl:(Ljava/lang/String;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;)Ljava/net/URL;
            areturn
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;

  private java.lang.Class lambda$1(org.springframework.boot.devtools.restart.classloader.ClassLoaderFile, java.lang.String);
    descriptor: (Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFile;Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
         0: .line 165
            aload 1
            invokevirtual org.springframework.boot.devtools.restart.classloader.ClassLoaderFile.getContents:()[B
            astore 3 /* bytes */
        start local 3 // byte[] bytes
         1: .line 166
            aload 0 /* this */
            aload 2
            aload 3 /* bytes */
            iconst_0
            aload 3 /* bytes */
            arraylength
            invokevirtual org.springframework.boot.devtools.restart.classloader.RestartClassLoader.defineClass:(Ljava/lang/String;[BII)Ljava/lang/Class;
            areturn
        end local 3 // byte[] bytes
        end local 0 // org.springframework.boot.devtools.restart.classloader.RestartClassLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/springframework/boot/devtools/restart/classloader/RestartClassLoader;
            1    2     3  bytes  [B
}
SourceFile: "RestartClassLoader.java"
NestMembers:
  org.springframework.boot.devtools.restart.classloader.RestartClassLoader$CompoundEnumeration
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Kind = org.springframework.boot.devtools.restart.classloader.ClassLoaderFile$Kind of org.springframework.boot.devtools.restart.classloader.ClassLoaderFile
  private CompoundEnumeration = org.springframework.boot.devtools.restart.classloader.RestartClassLoader$CompoundEnumeration of org.springframework.boot.devtools.restart.classloader.RestartClassLoader