public class org.springframework.boot.devtools.restart.Restarter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.boot.devtools.restart.Restarter
  super_class: java.lang.Object
{
  private static final java.lang.Object INSTANCE_MONITOR;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] NO_ARGS;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static org.springframework.boot.devtools.restart.Restarter instance;
    descriptor: Lorg/springframework/boot/devtools/restart/Restarter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final java.util.Set<java.net.URL> urls;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/net/URL;>;

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

  private final java.util.Map<java.lang.String, java.lang.Object> attributes;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private final java.util.concurrent.BlockingDeque<org.springframework.boot.devtools.restart.Restarter$LeakSafeThread> leakSafeThreads;
    descriptor: Ljava/util/concurrent/BlockingDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/BlockingDeque<Lorg/springframework/boot/devtools/restart/Restarter$LeakSafeThread;>;

  private final java.util.concurrent.locks.Lock stopLock;
    descriptor: Ljava/util/concurrent/locks/Lock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object monitor;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0002) ACC_PRIVATE

  private final boolean forceReferenceCleanup;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean enabled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.net.URL[] initialUrls;
    descriptor: [Ljava/net/URL;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.String mainClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ClassLoader applicationClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] args;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Thread$UncaughtExceptionHandler exceptionHandler;
    descriptor: Ljava/lang/Thread$UncaughtExceptionHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean finished;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final java.util.List<org.springframework.context.ConfigurableApplicationContext> rootContexts;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/springframework/context/ConfigurableApplicationContext;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 86
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.springframework.boot.devtools.restart.Restarter.INSTANCE_MONITOR:Ljava/lang/Object;
         1: .line 88
            iconst_0
            anewarray java.lang.String
            putstatic org.springframework.boot.devtools.restart.Restarter.NO_ARGS:[Ljava/lang/String;
         2: .line 90
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(java.lang.Thread, java.lang.String[], boolean, org.springframework.boot.devtools.restart.RestartInitializer);
    descriptor: (Ljava/lang/Thread;[Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.lang.Thread thread
        start local 2 // java.lang.String[] args
        start local 3 // boolean forceReferenceCleanup
        start local 4 // org.springframework.boot.devtools.restart.RestartInitializer initializer
         0: .line 132
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 92
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield org.springframework.boot.devtools.restart.Restarter.urls:Ljava/util/Set;
         2: .line 94
            aload 0 /* this */
            new org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles
            dup
            invokespecial org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles.<init>:()V
            putfield org.springframework.boot.devtools.restart.Restarter.classLoaderFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;
         3: .line 96
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.springframework.boot.devtools.restart.Restarter.attributes:Ljava/util/Map;
         4: .line 98
            aload 0 /* this */
            new java.util.concurrent.LinkedBlockingDeque
            dup
            invokespecial java.util.concurrent.LinkedBlockingDeque.<init>:()V
            putfield org.springframework.boot.devtools.restart.Restarter.leakSafeThreads:Ljava/util/concurrent/BlockingDeque;
         5: .line 100
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield org.springframework.boot.devtools.restart.Restarter.stopLock:Ljava/util/concurrent/locks/Lock;
         6: .line 102
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.springframework.boot.devtools.restart.Restarter.monitor:Ljava/lang/Object;
         7: .line 104
            aload 0 /* this */
            new org.springframework.boot.logging.DeferredLog
            dup
            invokespecial org.springframework.boot.logging.DeferredLog.<init>:()V
            putfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
         8: .line 108
            aload 0 /* this */
            iconst_1
            putfield org.springframework.boot.devtools.restart.Restarter.enabled:Z
         9: .line 120
            aload 0 /* this */
            iconst_0
            putfield org.springframework.boot.devtools.restart.Restarter.finished:Z
        10: .line 122
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.springframework.boot.devtools.restart.Restarter.rootContexts:Ljava/util/List;
        11: .line 133
            aload 1 /* thread */
            ldc "Thread must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
        12: .line 134
            aload 2 /* args */
            ldc "Args must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
        13: .line 135
            aload 4 /* initializer */
            ldc "Initializer must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
        14: .line 136
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 16
        15: .line 137
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Creating new Restarter for thread "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* thread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        16: .line 139
      StackMap locals: org.springframework.boot.devtools.restart.Restarter java.lang.Thread java.lang.String[] int org.springframework.boot.devtools.restart.RestartInitializer
      StackMap stack:
            aload 1 /* thread */
            invokestatic org.springframework.boot.devtools.restart.SilentExitExceptionHandler.setup:(Ljava/lang/Thread;)V
        17: .line 140
            aload 0 /* this */
            iload 3 /* forceReferenceCleanup */
            putfield org.springframework.boot.devtools.restart.Restarter.forceReferenceCleanup:Z
        18: .line 141
            aload 0 /* this */
            aload 4 /* initializer */
            aload 1 /* thread */
            invokeinterface org.springframework.boot.devtools.restart.RestartInitializer.getInitialUrls:(Ljava/lang/Thread;)[Ljava/net/URL;
            putfield org.springframework.boot.devtools.restart.Restarter.initialUrls:[Ljava/net/URL;
        19: .line 142
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* thread */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.getMainClassName:(Ljava/lang/Thread;)Ljava/lang/String;
            putfield org.springframework.boot.devtools.restart.Restarter.mainClassName:Ljava/lang/String;
        20: .line 143
            aload 0 /* this */
            aload 1 /* thread */
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            putfield org.springframework.boot.devtools.restart.Restarter.applicationClassLoader:Ljava/lang/ClassLoader;
        21: .line 144
            aload 0 /* this */
            aload 2 /* args */
            putfield org.springframework.boot.devtools.restart.Restarter.args:[Ljava/lang/String;
        22: .line 145
            aload 0 /* this */
            aload 1 /* thread */
            invokevirtual java.lang.Thread.getUncaughtExceptionHandler:()Ljava/lang/Thread$UncaughtExceptionHandler;
            putfield org.springframework.boot.devtools.restart.Restarter.exceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
        23: .line 146
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.leakSafeThreads:Ljava/util/concurrent/BlockingDeque;
            new org.springframework.boot.devtools.restart.Restarter$LeakSafeThread
            dup
            aload 0 /* this */
            invokespecial org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.<init>:(Lorg/springframework/boot/devtools/restart/Restarter;)V
            invokeinterface java.util.concurrent.BlockingDeque.add:(Ljava/lang/Object;)Z
            pop
        24: .line 147
            return
        end local 4 // org.springframework.boot.devtools.restart.RestartInitializer initializer
        end local 3 // boolean forceReferenceCleanup
        end local 2 // java.lang.String[] args
        end local 1 // java.lang.Thread thread
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   25     0                   this  Lorg/springframework/boot/devtools/restart/Restarter;
            0   25     1                 thread  Ljava/lang/Thread;
            0   25     2                   args  [Ljava/lang/String;
            0   25     3  forceReferenceCleanup  Z
            0   25     4            initializer  Lorg/springframework/boot/devtools/restart/RestartInitializer;
    MethodParameters:
                       Name  Flags
      thread                 
      args                   
      forceReferenceCleanup  
      initializer            

  private java.lang.String getMainClassName(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.lang.Thread thread
         0: .line 151
            new org.springframework.boot.devtools.restart.MainMethod
            dup
            aload 1 /* thread */
            invokespecial org.springframework.boot.devtools.restart.MainMethod.<init>:(Ljava/lang/Thread;)V
            invokevirtual org.springframework.boot.devtools.restart.MainMethod.getDeclaringClassName:()Ljava/lang/String;
         1: areturn
         2: .line 153
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         3: .line 154
            aconst_null
            areturn
        end local 1 // java.lang.Thread thread
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    4     1  thread  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
        Name  Flags
      thread  

  protected void initialize(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // boolean restartOnInitialize
         0: .line 159
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.preInitializeLeakyClasses:()V
         1: .line 160
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.initialUrls:[Ljava/net/URL;
            ifnull 6
         2: .line 161
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.urls:Ljava/util/Set;
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.initialUrls:[Ljava/net/URL;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 162
            iload 1 /* restartOnInitialize */
            ifeq 6
         4: .line 163
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            ldc "Immediately restarting application"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         5: .line 164
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.immediateRestart:()V
         6: .line 167
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean restartOnInitialize
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    7     1  restartOnInitialize  Z
    MethodParameters:
                     Name  Flags
      restartOnInitialize  

  private void immediateRestart();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 171
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.getLeakSafeThread:()Lorg/springframework/boot/devtools/restart/Restarter$LeakSafeThread;
            aload 0 /* this */
            invokedynamic call(Lorg/springframework/boot/devtools/restart/Restarter;)Ljava/util/concurrent/Callable;
              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/Restarter.lambda$0()Ljava/lang/Object; (7)
                  ()Ljava/lang/Object;
            invokevirtual org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.callAndWait:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
         1: .line 176
            goto 4
         2: .line 177
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* ex */
        start local 1 // java.lang.Exception ex
         3: .line 178
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            ldc "Unable to initialize restarter"
            aload 1 /* ex */
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception ex
         4: .line 180
      StackMap locals:
      StackMap stack:
            invokestatic org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread:()V
         5: .line 181
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
            3    4     1    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  private void preInitializeLeakyClasses();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 189
            ldc Lorg/springframework/cglib/core/ClassNameReader;
            astore 1 /* readerClass */
        start local 1 // java.lang.Class readerClass
         1: .line 190
            aload 1 /* readerClass */
            ldc "EARLY_EXIT"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 2 /* field */
        start local 2 // java.lang.reflect.Field field
         2: .line 191
            aload 2 /* field */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         3: .line 192
            aload 2 /* field */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Throwable
            invokevirtual java.lang.Throwable.fillInStackTrace:()Ljava/lang/Throwable;
            pop
        end local 2 // java.lang.reflect.Field field
        end local 1 // java.lang.Class readerClass
         4: .line 193
            goto 7
         5: .line 194
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* ex */
        start local 1 // java.lang.Exception ex
         6: .line 195
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            ldc "Unable to pre-initialize classes"
            aload 1 /* ex */
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception ex
         7: .line 197
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/springframework/boot/devtools/restart/Restarter;
            1    4     1  readerClass  Ljava/lang/Class<*>;
            2    4     2        field  Ljava/lang/reflect/Field;
            6    7     1           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.Exception

  private void setEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // boolean enabled
         0: .line 204
            aload 0 /* this */
            iload 1 /* enabled */
            putfield org.springframework.boot.devtools.restart.Restarter.enabled:Z
         1: .line 205
            return
        end local 1 // boolean enabled
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    2     1  enabled  Z
    MethodParameters:
         Name  Flags
      enabled  

  public void addUrls(java.util.Collection<java.net.URL>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.util.Collection urls
         0: .line 212
            aload 1 /* urls */
            ldc "Urls must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 213
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.urls:Ljava/util/Set;
            aload 1 /* urls */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 214
            return
        end local 1 // java.util.Collection urls
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    3     1  urls  Ljava/util/Collection<Ljava/net/URL;>;
    Signature: (Ljava/util/Collection<Ljava/net/URL;>;)V
    MethodParameters:
      Name  Flags
      urls  

  public void addClassLoaderFiles(org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles);
    descriptor: (Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles classLoaderFiles
         0: .line 221
            aload 1 /* classLoaderFiles */
            ldc "ClassLoaderFiles must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 222
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.classLoaderFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;
            aload 1 /* classLoaderFiles */
            invokevirtual org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles.addAll:(Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;)V
         2: .line 223
            return
        end local 1 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles classLoaderFiles
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    3     1  classLoaderFiles  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;
    MethodParameters:
                  Name  Flags
      classLoaderFiles  

  public java.util.concurrent.ThreadFactory getThreadFactory();
    descriptor: ()Ljava/util/concurrent/ThreadFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 230
            new org.springframework.boot.devtools.restart.Restarter$LeakSafeThreadFactory
            dup
            aload 0 /* this */
            invokespecial org.springframework.boot.devtools.restart.Restarter$LeakSafeThreadFactory.<init>:(Lorg/springframework/boot/devtools/restart/Restarter;)V
            areturn
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/devtools/restart/Restarter;

  public void restart();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 237
            aload 0 /* this */
            getstatic org.springframework.boot.devtools.restart.FailureHandler.NONE:Lorg/springframework/boot/devtools/restart/FailureHandler;
            invokevirtual org.springframework.boot.devtools.restart.Restarter.restart:(Lorg/springframework/boot/devtools/restart/FailureHandler;)V
         1: .line 238
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/boot/devtools/restart/Restarter;

  public void restart(org.springframework.boot.devtools.restart.FailureHandler);
    descriptor: (Lorg/springframework/boot/devtools/restart/FailureHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // org.springframework.boot.devtools.restart.FailureHandler failureHandler
         0: .line 245
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.enabled:Z
            ifne 3
         1: .line 246
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            ldc "Application restart is disabled"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         2: .line 247
            return
         3: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            ldc "Restarting application"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         4: .line 250
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.getLeakSafeThread:()Lorg/springframework/boot/devtools/restart/Restarter$LeakSafeThread;
            aload 0 /* this */
            aload 1 /* failureHandler */
            invokedynamic call(Lorg/springframework/boot/devtools/restart/Restarter;Lorg/springframework/boot/devtools/restart/FailureHandler;)Ljava/util/concurrent/Callable;
              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/Restarter.lambda$1(Lorg/springframework/boot/devtools/restart/FailureHandler;)Ljava/lang/Object; (7)
                  ()Ljava/lang/Object;
            invokevirtual org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.call:(Ljava/util/concurrent/Callable;)V
         5: .line 255
            return
        end local 1 // org.springframework.boot.devtools.restart.FailureHandler failureHandler
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    6     1  failureHandler  Lorg/springframework/boot/devtools/restart/FailureHandler;
    MethodParameters:
                Name  Flags
      failureHandler  

  protected void start(org.springframework.boot.devtools.restart.FailureHandler);
    descriptor: (Lorg/springframework/boot/devtools/restart/FailureHandler;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // org.springframework.boot.devtools.restart.FailureHandler failureHandler
         0: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.doStart:()Ljava/lang/Throwable;
            astore 2 /* error */
        start local 2 // java.lang.Throwable error
         1: .line 265
            aload 2 /* error */
            ifnonnull 3
         2: .line 266
            return
         3: .line 268
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* failureHandler */
            aload 2 /* error */
            invokeinterface org.springframework.boot.devtools.restart.FailureHandler.handle:(Ljava/lang/Throwable;)Lorg/springframework/boot/devtools/restart/FailureHandler$Outcome;
            getstatic org.springframework.boot.devtools.restart.FailureHandler$Outcome.ABORT:Lorg/springframework/boot/devtools/restart/FailureHandler$Outcome;
            if_acmpne 0
         4: .line 269
            return
        end local 2 // java.lang.Throwable error
        end local 1 // org.springframework.boot.devtools.restart.FailureHandler failureHandler
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    5     1  failureHandler  Lorg/springframework/boot/devtools/restart/FailureHandler;
            1    5     2           error  Ljava/lang/Throwable;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
                Name  Flags
      failureHandler  

  private java.lang.Throwable doStart();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 276
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.mainClassName:Ljava/lang/String;
            ldc "Unable to find the main class to restart"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 277
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.urls:Ljava/util/Set;
            iconst_0
            anewarray java.net.URL
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.net.URL[]
            astore 1 /* urls */
        start local 1 // java.net.URL[] urls
         2: .line 278
            new org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles
            dup
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.classLoaderFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;
            invokespecial org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles.<init>:(Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;)V
            astore 2 /* updatedFiles */
        start local 2 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles updatedFiles
         3: .line 279
            new org.springframework.boot.devtools.restart.classloader.RestartClassLoader
            dup
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.applicationClassLoader:Ljava/lang/ClassLoader;
            aload 1 /* urls */
            aload 2 /* updatedFiles */
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger: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
            astore 3 /* classLoader */
        start local 3 // java.lang.ClassLoader classLoader
         4: .line 280
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 6
         5: .line 281
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Starting application "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.mainClassName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " with URLs "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* urls */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         6: .line 283
      StackMap locals: java.net.URL[] org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            aload 3 /* classLoader */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.relaunch:(Ljava/lang/ClassLoader;)Ljava/lang/Throwable;
            areturn
        end local 3 // java.lang.ClassLoader classLoader
        end local 2 // org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles updatedFiles
        end local 1 // java.net.URL[] urls
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/springframework/boot/devtools/restart/Restarter;
            2    7     1          urls  [Ljava/net/URL;
            3    7     2  updatedFiles  Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;
            4    7     3   classLoader  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.lang.Exception

  protected java.lang.Throwable relaunch(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/Throwable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 293
            new org.springframework.boot.devtools.restart.RestartLauncher
            dup
            aload 1 /* classLoader */
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.mainClassName:Ljava/lang/String;
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.args:[Ljava/lang/String;
         1: .line 294
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.exceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
         2: .line 293
            invokespecial org.springframework.boot.devtools.restart.RestartLauncher.<init>:(Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/Thread$UncaughtExceptionHandler;)V
            astore 2 /* launcher */
        start local 2 // org.springframework.boot.devtools.restart.RestartLauncher launcher
         3: .line 295
            aload 2 /* launcher */
            invokevirtual org.springframework.boot.devtools.restart.RestartLauncher.start:()V
         4: .line 296
            aload 2 /* launcher */
            invokevirtual org.springframework.boot.devtools.restart.RestartLauncher.join:()V
         5: .line 297
            aload 2 /* launcher */
            invokevirtual org.springframework.boot.devtools.restart.RestartLauncher.getError:()Ljava/lang/Throwable;
            areturn
        end local 2 // org.springframework.boot.devtools.restart.RestartLauncher launcher
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    6     1  classLoader  Ljava/lang/ClassLoader;
            3    6     2     launcher  Lorg/springframework/boot/devtools/restart/RestartLauncher;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
             Name  Flags
      classLoader  

  protected void stop();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 305
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            ldc "Stopping application"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         1: .line 306
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.stopLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 308
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.rootContexts:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: org.springframework.boot.devtools.restart.Restarter top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.context.ConfigurableApplicationContext
            astore 1 /* context */
        start local 1 // org.springframework.context.ConfigurableApplicationContext context
         4: .line 309
            aload 1 /* context */
            invokeinterface org.springframework.context.ConfigurableApplicationContext.close:()V
         5: .line 310
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.rootContexts:Ljava/util/List;
            aload 1 /* context */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        end local 1 // org.springframework.context.ConfigurableApplicationContext context
         6: .line 308
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 312
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.cleanupCaches:()V
         8: .line 313
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.forceReferenceCleanup:Z
            ifeq 14
         9: .line 314
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.forceReferenceCleanup:()V
        10: .line 316
            goto 14
        11: .line 317
      StackMap locals: org.springframework.boot.devtools.restart.Restarter
      StackMap stack: java.lang.Throwable
            astore 3
        12: .line 318
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.stopLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        13: .line 319
            aload 3
            athrow
        14: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.stopLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        15: .line 320
            invokestatic java.lang.System.gc:()V
        16: .line 321
            invokestatic java.lang.System.runFinalization:()V
        17: .line 322
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/springframework/boot/devtools/restart/Restarter;
            4    6     1  context  Lorg/springframework/context/ConfigurableApplicationContext;
      Exception table:
        from    to  target  type
           2    11      11  any
    Exceptions:
      throws java.lang.Exception

  private void cleanupCaches();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 325
            invokestatic java.beans.Introspector.flushCaches:()V
         1: .line 326
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.cleanupKnownCaches:()V
         2: .line 327
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
    Exceptions:
      throws java.lang.Exception

  private void cleanupKnownCaches();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 332
            invokestatic org.springframework.core.ResolvableType.clearCache:()V
         1: .line 333
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.cleanCachedIntrospectionResultsCache:()V
         2: .line 334
            invokestatic org.springframework.util.ReflectionUtils.clearCache:()V
         3: .line 335
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.clearAnnotationUtilsCache:()V
         4: .line 336
            invokestatic org.springframework.boot.system.JavaVersion.getJavaVersion:()Lorg/springframework/boot/system/JavaVersion;
            getstatic org.springframework.boot.system.JavaVersion.NINE:Lorg/springframework/boot/system/JavaVersion;
            invokevirtual org.springframework.boot.system.JavaVersion.isEqualOrNewerThan:(Lorg/springframework/boot/system/JavaVersion;)Z
            ifne 6
         5: .line 337
            aload 0 /* this */
            ldc "com.sun.naming.internal.ResourceManager"
            ldc "propertiesCache"
            invokevirtual org.springframework.boot.devtools.restart.Restarter.clear:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 339
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
    Exceptions:
      throws java.lang.Exception

  private void cleanCachedIntrospectionResultsCache();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 342
            aload 0 /* this */
            ldc Lorg/springframework/beans/CachedIntrospectionResults;
            ldc "acceptedClassLoaders"
            invokevirtual org.springframework.boot.devtools.restart.Restarter.clear:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 343
            aload 0 /* this */
            ldc Lorg/springframework/beans/CachedIntrospectionResults;
            ldc "strongClassCache"
            invokevirtual org.springframework.boot.devtools.restart.Restarter.clear:(Ljava/lang/Class;Ljava/lang/String;)V
         2: .line 344
            aload 0 /* this */
            ldc Lorg/springframework/beans/CachedIntrospectionResults;
            ldc "softClassCache"
            invokevirtual org.springframework.boot.devtools.restart.Restarter.clear:(Ljava/lang/Class;Ljava/lang/String;)V
         3: .line 345
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
    Exceptions:
      throws java.lang.Exception

  private void clearAnnotationUtilsCache();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 349
            invokestatic org.springframework.core.annotation.AnnotationUtils.clearCache:()V
         1: .line 350
            goto 5
         2: .line 351
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         3: .line 352
            aload 0 /* this */
            ldc Lorg/springframework/core/annotation/AnnotationUtils;
            ldc "findAnnotationCache"
            invokevirtual org.springframework.boot.devtools.restart.Restarter.clear:(Ljava/lang/Class;Ljava/lang/String;)V
         4: .line 353
            aload 0 /* this */
            ldc Lorg/springframework/core/annotation/AnnotationUtils;
            ldc "annotatedInterfaceCache"
            invokevirtual org.springframework.boot.devtools.restart.Restarter.clear:(Ljava/lang/Class;Ljava/lang/String;)V
         5: .line 355
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception

  private void clear(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.lang.String className
        start local 2 // java.lang.String fieldName
         0: .line 359
            aload 0 /* this */
            aload 1 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            aload 2 /* fieldName */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.clear:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 360
            goto 5
         2: .line 361
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* ex */
        start local 3 // java.lang.Exception ex
         3: .line 362
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 5
         4: .line 363
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Unable to clear field "
            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;
            aload 2 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Exception ex
         5: .line 366
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String className
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    6     1  className  Ljava/lang/String;
            0    6     2  fieldName  Ljava/lang/String;
            3    5     3         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      className  
      fieldName  

  private void clear(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.lang.Class type
        start local 2 // java.lang.String fieldName
         0: .line 370
            aload 1 /* type */
            aload 2 /* fieldName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 3 /* field */
        start local 3 // java.lang.reflect.Field field
         1: .line 371
            aload 3 /* field */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         2: .line 372
            aload 3 /* field */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* instance */
        start local 4 // java.lang.Object instance
         3: .line 373
            aload 4 /* instance */
            instanceof java.util.Set
            ifeq 5
         4: .line 374
            aload 4 /* instance */
            checkcast java.util.Set
            invokeinterface java.util.Set.clear:()V
         5: .line 376
      StackMap locals: java.lang.reflect.Field java.lang.Object
      StackMap stack:
            aload 4 /* instance */
            instanceof java.util.Map
            ifeq 11
         6: .line 377
            aload 4 /* instance */
            checkcast java.util.Map
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 0 /* this */
            invokedynamic test(Lorg/springframework/boot/devtools/restart/Restarter;)Ljava/util/function/Predicate;
              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;)Z
                  org/springframework/boot/devtools/restart/Restarter.isFromRestartClassLoader(Ljava/lang/Object;)Z (7)
                  (Ljava/lang/Object;)Z
            invokeinterface java.util.Set.removeIf:(Ljava/util/function/Predicate;)Z
            pop
        end local 4 // java.lang.Object instance
        end local 3 // java.lang.reflect.Field field
         7: .line 379
            goto 11
         8: .line 380
      StackMap locals: org.springframework.boot.devtools.restart.Restarter java.lang.Class java.lang.String
      StackMap stack: java.lang.Exception
            astore 3 /* ex */
        start local 3 // java.lang.Exception ex
         9: .line 381
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 11
        10: .line 382
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Unable to clear field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Exception ex
        11: .line 385
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/springframework/boot/devtools/restart/Restarter;
            0   12     1       type  Ljava/lang/Class<*>;
            0   12     2  fieldName  Ljava/lang/String;
            1    7     3      field  Ljava/lang/reflect/Field;
            3    7     4   instance  Ljava/lang/Object;
            9   11     3         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     7       8  Class java.lang.Exception
    Exceptions:
      throws java.lang.Exception
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
    MethodParameters:
           Name  Flags
      type       
      fieldName  

  private boolean isFromRestartClassLoader(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.lang.Object object
         0: .line 388
            aload 1 /* object */
            instanceof java.lang.Class
            ifeq 1
            aload 1 /* object */
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            instanceof org.springframework.boot.devtools.restart.classloader.RestartClassLoader
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  private void forceReferenceCleanup();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 396
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 1 /* memory */
        start local 1 // java.util.List memory
         1: .line 398
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* memory */
            ldc 102400
            newarray 11
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 397
            goto 1
        end local 1 // java.util.List memory
         3: .line 401
      StackMap locals: org.springframework.boot.devtools.restart.Restarter
      StackMap stack: java.lang.OutOfMemoryError
            pop
         4: .line 404
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/springframework/boot/devtools/restart/Restarter;
            1    3     1  memory  Ljava/util/List<[J>;
      Exception table:
        from    to  target  type
           0     3       3  Class java.lang.OutOfMemoryError

  void finish();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 411
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.monitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 412
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.isFinished:()Z
            ifne 4
         2: .line 413
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            invokestatic org.springframework.boot.logging.DeferredLog.replay:(Lorg/apache/commons/logging/Log;Lorg/apache/commons/logging/Log;)Lorg/apache/commons/logging/Log;
            putfield org.springframework.boot.devtools.restart.Restarter.logger:Lorg/apache/commons/logging/Log;
         3: .line 414
            aload 0 /* this */
            iconst_1
            putfield org.springframework.boot.devtools.restart.Restarter.finished:Z
         4: .line 411
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 417
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  boolean isFinished();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 420
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.monitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 421
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.finished:Z
            aload 1
            monitorexit
         2: ireturn
         3: .line 420
      StackMap locals: org.springframework.boot.devtools.restart.Restarter java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  void prepare(org.springframework.context.ConfigurableApplicationContext);
    descriptor: (Lorg/springframework/context/ConfigurableApplicationContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // org.springframework.context.ConfigurableApplicationContext applicationContext
         0: .line 426
            aload 1 /* applicationContext */
            ifnull 2
            aload 1 /* applicationContext */
            invokeinterface org.springframework.context.ConfigurableApplicationContext.getParent:()Lorg/springframework/context/ApplicationContext;
            ifnull 2
         1: .line 427
            return
         2: .line 429
      StackMap locals:
      StackMap stack:
            aload 1 /* applicationContext */
            instanceof org.springframework.context.support.GenericApplicationContext
            ifeq 4
         3: .line 430
            aload 0 /* this */
            aload 1 /* applicationContext */
            checkcast org.springframework.context.support.GenericApplicationContext
            invokevirtual org.springframework.boot.devtools.restart.Restarter.prepare:(Lorg/springframework/context/support/GenericApplicationContext;)V
         4: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.rootContexts:Ljava/util/List;
            aload 1 /* applicationContext */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 433
            return
        end local 1 // org.springframework.context.ConfigurableApplicationContext applicationContext
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    6     1  applicationContext  Lorg/springframework/context/ConfigurableApplicationContext;
    MethodParameters:
                    Name  Flags
      applicationContext  

  void remove(org.springframework.context.ConfigurableApplicationContext);
    descriptor: (Lorg/springframework/context/ConfigurableApplicationContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // org.springframework.context.ConfigurableApplicationContext applicationContext
         0: .line 436
            aload 1 /* applicationContext */
            ifnull 2
         1: .line 437
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.rootContexts:Ljava/util/List;
            aload 1 /* applicationContext */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 439
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.springframework.context.ConfigurableApplicationContext applicationContext
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    3     1  applicationContext  Lorg/springframework/context/ConfigurableApplicationContext;
    MethodParameters:
                    Name  Flags
      applicationContext  

  private void prepare(org.springframework.context.support.GenericApplicationContext);
    descriptor: (Lorg/springframework/context/support/GenericApplicationContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // org.springframework.context.support.GenericApplicationContext applicationContext
         0: .line 442
            new org.springframework.boot.devtools.restart.ClassLoaderFilesResourcePatternResolver
            dup
            aload 1 /* applicationContext */
         1: .line 443
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.classLoaderFiles:Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;
         2: .line 442
            invokespecial org.springframework.boot.devtools.restart.ClassLoaderFilesResourcePatternResolver.<init>:(Lorg/springframework/context/support/AbstractApplicationContext;Lorg/springframework/boot/devtools/restart/classloader/ClassLoaderFiles;)V
            astore 2 /* resourceLoader */
        start local 2 // org.springframework.core.io.ResourceLoader resourceLoader
         3: .line 444
            aload 1 /* applicationContext */
            aload 2 /* resourceLoader */
            invokevirtual org.springframework.context.support.GenericApplicationContext.setResourceLoader:(Lorg/springframework/core/io/ResourceLoader;)V
         4: .line 445
            return
        end local 2 // org.springframework.core.io.ResourceLoader resourceLoader
        end local 1 // org.springframework.context.support.GenericApplicationContext applicationContext
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    5     1  applicationContext  Lorg/springframework/context/support/GenericApplicationContext;
            3    5     2      resourceLoader  Lorg/springframework/core/io/ResourceLoader;
    MethodParameters:
                    Name  Flags
      applicationContext  

  private org.springframework.boot.devtools.restart.Restarter$LeakSafeThread getLeakSafeThread();
    descriptor: ()Lorg/springframework/boot/devtools/restart/Restarter$LeakSafeThread;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 449
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.leakSafeThreads:Ljava/util/concurrent/BlockingDeque;
            invokeinterface java.util.concurrent.BlockingDeque.takeFirst:()Ljava/lang/Object;
            checkcast org.springframework.boot.devtools.restart.Restarter$LeakSafeThread
         1: areturn
         2: .line 451
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 1 /* ex */
        start local 1 // java.lang.InterruptedException ex
         3: .line 452
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         4: .line 453
            new java.lang.IllegalStateException
            dup
            aload 1 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.InterruptedException ex
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
            3    5     1    ex  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InterruptedException

  public  getOrAddAttribute(java.lang.String, org.springframework.beans.factory.ObjectFactory<?>);
    descriptor: (Ljava/lang/String;Lorg/springframework/beans/factory/ObjectFactory;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.lang.String name
        start local 2 // org.springframework.beans.factory.ObjectFactory objectFactory
         0: .line 458
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.attributes:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         1: .line 459
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.attributes:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 460
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.attributes:Ljava/util/Map;
            aload 1 /* name */
            aload 2 /* objectFactory */
            invokeinterface org.springframework.beans.factory.ObjectFactory.getObject:()Ljava/lang/Object;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 462
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.attributes:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3
            monitorexit
         4: areturn
         5: .line 458
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
         6: athrow
        end local 2 // org.springframework.beans.factory.ObjectFactory objectFactory
        end local 1 // java.lang.String name
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    7     1           name  Ljava/lang/String;
            0    7     2  objectFactory  Lorg/springframework/beans/factory/ObjectFactory<*>;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: (Ljava/lang/String;Lorg/springframework/beans/factory/ObjectFactory<*>;)Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      name           
      objectFactory  final

  public java.lang.Object removeAttribute(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
        start local 1 // java.lang.String name
         0: .line 467
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.attributes:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         1: .line 468
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.attributes:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 2
            monitorexit
         2: areturn
         3: .line 467
      StackMap locals: org.springframework.boot.devtools.restart.Restarter java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.String name
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
            0    5     1  name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    MethodParameters:
      Name  Flags
      name  

  public java.net.URL[] getInitialUrls();
    descriptor: ()[Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 477
            aload 0 /* this */
            getfield org.springframework.boot.devtools.restart.Restarter.initialUrls:[Ljava/net/URL;
            areturn
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/devtools/restart/Restarter;

  public static void disable();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 484
            getstatic org.springframework.boot.devtools.restart.Restarter.NO_ARGS:[Ljava/lang/String;
            iconst_0
            getstatic org.springframework.boot.devtools.restart.RestartInitializer.NONE:Lorg/springframework/boot/devtools/restart/RestartInitializer;
            invokestatic org.springframework.boot.devtools.restart.Restarter.initialize:([Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;)V
         1: .line 485
            invokestatic org.springframework.boot.devtools.restart.Restarter.getInstance:()Lorg/springframework/boot/devtools/restart/Restarter;
            iconst_0
            invokevirtual org.springframework.boot.devtools.restart.Restarter.setEnabled:(Z)V
         2: .line 486
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void initialize(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 495
            aload 0 /* args */
            iconst_0
            new org.springframework.boot.devtools.restart.DefaultRestartInitializer
            dup
            invokespecial org.springframework.boot.devtools.restart.DefaultRestartInitializer.<init>:()V
            invokestatic org.springframework.boot.devtools.restart.Restarter.initialize:([Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;)V
         1: .line 496
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      args  

  public static void initialize(java.lang.String[], org.springframework.boot.devtools.restart.RestartInitializer);
    descriptor: ([Ljava/lang/String;Lorg/springframework/boot/devtools/restart/RestartInitializer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String[] args
        start local 1 // org.springframework.boot.devtools.restart.RestartInitializer initializer
         0: .line 506
            aload 0 /* args */
            iconst_0
            aload 1 /* initializer */
            iconst_1
            invokestatic org.springframework.boot.devtools.restart.Restarter.initialize:([Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;Z)V
         1: .line 507
            return
        end local 1 // org.springframework.boot.devtools.restart.RestartInitializer initializer
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         args  [Ljava/lang/String;
            0    2     1  initializer  Lorg/springframework/boot/devtools/restart/RestartInitializer;
    MethodParameters:
             Name  Flags
      args         
      initializer  

  public static void initialize(java.lang.String[], boolean);
    descriptor: ([Ljava/lang/String;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String[] args
        start local 1 // boolean forceReferenceCleanup
         0: .line 517
            aload 0 /* args */
            iload 1 /* forceReferenceCleanup */
            new org.springframework.boot.devtools.restart.DefaultRestartInitializer
            dup
            invokespecial org.springframework.boot.devtools.restart.DefaultRestartInitializer.<init>:()V
            invokestatic org.springframework.boot.devtools.restart.Restarter.initialize:([Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;)V
         1: .line 518
            return
        end local 1 // boolean forceReferenceCleanup
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   args  [Ljava/lang/String;
            0    2     1  forceReferenceCleanup  Z
    MethodParameters:
                       Name  Flags
      args                   
      forceReferenceCleanup  

  public static void initialize(java.lang.String[], boolean, org.springframework.boot.devtools.restart.RestartInitializer);
    descriptor: ([Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String[] args
        start local 1 // boolean forceReferenceCleanup
        start local 2 // org.springframework.boot.devtools.restart.RestartInitializer initializer
         0: .line 529
            aload 0 /* args */
            iload 1 /* forceReferenceCleanup */
            aload 2 /* initializer */
            iconst_1
            invokestatic org.springframework.boot.devtools.restart.Restarter.initialize:([Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;Z)V
         1: .line 530
            return
        end local 2 // org.springframework.boot.devtools.restart.RestartInitializer initializer
        end local 1 // boolean forceReferenceCleanup
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   args  [Ljava/lang/String;
            0    2     1  forceReferenceCleanup  Z
            0    2     2            initializer  Lorg/springframework/boot/devtools/restart/RestartInitializer;
    MethodParameters:
                       Name  Flags
      args                   
      forceReferenceCleanup  
      initializer            

  public static void initialize(java.lang.String[], boolean, org.springframework.boot.devtools.restart.RestartInitializer, boolean);
    descriptor: ([Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.lang.String[] args
        start local 1 // boolean forceReferenceCleanup
        start local 2 // org.springframework.boot.devtools.restart.RestartInitializer initializer
        start local 3 // boolean restartOnInitialize
         0: .line 546
            aconst_null
            astore 4 /* localInstance */
        start local 4 // org.springframework.boot.devtools.restart.Restarter localInstance
         1: .line 547
            getstatic org.springframework.boot.devtools.restart.Restarter.INSTANCE_MONITOR:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         2: .line 548
            getstatic org.springframework.boot.devtools.restart.Restarter.instance:Lorg/springframework/boot/devtools/restart/Restarter;
            ifnonnull 5
         3: .line 549
            new org.springframework.boot.devtools.restart.Restarter
            dup
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* args */
            iload 1 /* forceReferenceCleanup */
            aload 2 /* initializer */
            invokespecial org.springframework.boot.devtools.restart.Restarter.<init>:(Ljava/lang/Thread;[Ljava/lang/String;ZLorg/springframework/boot/devtools/restart/RestartInitializer;)V
            astore 4 /* localInstance */
         4: .line 550
            aload 4 /* localInstance */
            putstatic org.springframework.boot.devtools.restart.Restarter.instance:Lorg/springframework/boot/devtools/restart/Restarter;
         5: .line 547
      StackMap locals: org.springframework.boot.devtools.restart.Restarter java.lang.Object
      StackMap stack:
            aload 5
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 5
            monitorexit
         8: athrow
         9: .line 553
      StackMap locals:
      StackMap stack:
            aload 4 /* localInstance */
            ifnull 11
        10: .line 554
            aload 4 /* localInstance */
            iload 3 /* restartOnInitialize */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.initialize:(Z)V
        11: .line 556
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.springframework.boot.devtools.restart.Restarter localInstance
        end local 3 // boolean restartOnInitialize
        end local 2 // org.springframework.boot.devtools.restart.RestartInitializer initializer
        end local 1 // boolean forceReferenceCleanup
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   12     0                   args  [Ljava/lang/String;
            0   12     1  forceReferenceCleanup  Z
            0   12     2            initializer  Lorg/springframework/boot/devtools/restart/RestartInitializer;
            0   12     3    restartOnInitialize  Z
            1   12     4          localInstance  Lorg/springframework/boot/devtools/restart/Restarter;
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
    MethodParameters:
                       Name  Flags
      args                   
      forceReferenceCleanup  
      initializer            
      restartOnInitialize    

  public static org.springframework.boot.devtools.restart.Restarter getInstance();
    descriptor: ()Lorg/springframework/boot/devtools/restart/Restarter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 564
            getstatic org.springframework.boot.devtools.restart.Restarter.INSTANCE_MONITOR:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 565
            getstatic org.springframework.boot.devtools.restart.Restarter.instance:Lorg/springframework/boot/devtools/restart/Restarter;
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "Restarter has not been initialized"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         4: .line 566
            getstatic org.springframework.boot.devtools.restart.Restarter.instance:Lorg/springframework/boot/devtools/restart/Restarter;
            aload 0
            monitorexit
         5: areturn
         6: .line 564
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 0
            monitorexit
         7: athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  static void setInstance(org.springframework.boot.devtools.restart.Restarter);
    descriptor: (Lorg/springframework/boot/devtools/restart/Restarter;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter instance
         0: .line 575
            getstatic org.springframework.boot.devtools.restart.Restarter.INSTANCE_MONITOR:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 576
            aload 0 /* instance */
            putstatic org.springframework.boot.devtools.restart.Restarter.instance:Lorg/springframework/boot/devtools/restart/Restarter;
         2: .line 575
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: org.springframework.boot.devtools.restart.Restarter java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 578
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.boot.devtools.restart.Restarter instance
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  instance  Lorg/springframework/boot/devtools/restart/Restarter;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      instance  

  public static void clearInstance();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 585
            getstatic org.springframework.boot.devtools.restart.Restarter.INSTANCE_MONITOR:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 586
            aconst_null
            putstatic org.springframework.boot.devtools.restart.Restarter.instance:Lorg/springframework/boot/devtools/restart/Restarter;
         2: .line 585
            aload 0
            monitorexit
         3: goto 6
      StackMap locals: java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 0
            monitorexit
         5: athrow
         6: .line 588
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  static java.lang.ClassLoader access$0(org.springframework.boot.devtools.restart.Restarter);
    descriptor: (Lorg/springframework/boot/devtools/restart/Restarter;)Ljava/lang/ClassLoader;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 114
            aload 0
            getfield org.springframework.boot.devtools.restart.Restarter.applicationClassLoader:Ljava/lang/ClassLoader;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private java.lang.Object lambda$0();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 172
            aload 0 /* this */
            getstatic org.springframework.boot.devtools.restart.FailureHandler.NONE:Lorg/springframework/boot/devtools/restart/FailureHandler;
            invokevirtual org.springframework.boot.devtools.restart.Restarter.start:(Lorg/springframework/boot/devtools/restart/FailureHandler;)V
         1: .line 173
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.cleanupCaches:()V
         2: .line 174
            aconst_null
            areturn
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
    Exceptions:
      throws java.lang.Exception

  private java.lang.Object lambda$1(org.springframework.boot.devtools.restart.FailureHandler);
    descriptor: (Lorg/springframework/boot/devtools/restart/FailureHandler;)Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.devtools.restart.Restarter this
         0: .line 251
            aload 0 /* this */
            invokevirtual org.springframework.boot.devtools.restart.Restarter.stop:()V
         1: .line 252
            aload 0 /* this */
            aload 1
            invokevirtual org.springframework.boot.devtools.restart.Restarter.start:(Lorg/springframework/boot/devtools/restart/FailureHandler;)V
         2: .line 253
            aconst_null
            areturn
        end local 0 // org.springframework.boot.devtools.restart.Restarter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/boot/devtools/restart/Restarter;
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "Restarter.java"
NestMembers:
  org.springframework.boot.devtools.restart.Restarter$LeakSafeThread  org.springframework.boot.devtools.restart.Restarter$LeakSafeThreadFactory
InnerClasses:
  public abstract UncaughtExceptionHandler = java.lang.Thread$UncaughtExceptionHandler of java.lang.Thread
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Outcome = org.springframework.boot.devtools.restart.FailureHandler$Outcome of org.springframework.boot.devtools.restart.FailureHandler
  private LeakSafeThread = org.springframework.boot.devtools.restart.Restarter$LeakSafeThread of org.springframework.boot.devtools.restart.Restarter
  private LeakSafeThreadFactory = org.springframework.boot.devtools.restart.Restarter$LeakSafeThreadFactory of org.springframework.boot.devtools.restart.Restarter