class org.springframework.boot.devtools.restart.Restarter$LeakSafeThread extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.boot.devtools.restart.Restarter$LeakSafeThread
super_class: java.lang.Thread
{
private java.util.concurrent.Callable<?> callable;
descriptor: Ljava/util/concurrent/Callable;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/Callable<*>;
private java.lang.Object result;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
final org.springframework.boot.devtools.restart.Restarter this$0;
descriptor: Lorg/springframework/boot/devtools/restart/Restarter;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(org.springframework.boot.devtools.restart.Restarter);
descriptor: (Lorg/springframework/boot/devtools/restart/Restarter;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // org.springframework.boot.devtools.restart.Restarter$LeakSafeThread this
0: .line 599
aload 0 /* this */
aload 1
putfield org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.this$0:Lorg/springframework/boot/devtools/restart/Restarter;
aload 0 /* this */
invokespecial java.lang.Thread.<init>:()V
1: .line 600
aload 0 /* this */
iconst_0
invokevirtual org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.setDaemon:(Z)V
2: .line 601
return
end local 0 // org.springframework.boot.devtools.restart.Restarter$LeakSafeThread this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/boot/devtools/restart/Restarter$LeakSafeThread;
MethodParameters:
Name Flags
this$0 final
void call(java.util.concurrent.Callable<?>);
descriptor: (Ljava/util/concurrent/Callable;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // org.springframework.boot.devtools.restart.Restarter$LeakSafeThread this
start local 1 // java.util.concurrent.Callable callable
0: .line 604
aload 0 /* this */
aload 1 /* callable */
putfield org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.callable:Ljava/util/concurrent/Callable;
1: .line 605
aload 0 /* this */
invokevirtual org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.start:()V
2: .line 606
return
end local 1 // java.util.concurrent.Callable callable
end local 0 // org.springframework.boot.devtools.restart.Restarter$LeakSafeThread this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/boot/devtools/restart/Restarter$LeakSafeThread;
0 3 1 callable Ljava/util/concurrent/Callable<*>;
Signature: (Ljava/util/concurrent/Callable<*>;)V
MethodParameters:
Name Flags
callable
<V> V callAndWait(java.util.concurrent.Callable<V>);
descriptor: (Ljava/util/concurrent/Callable;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 // org.springframework.boot.devtools.restart.Restarter$LeakSafeThread this
start local 1 // java.util.concurrent.Callable callable
0: .line 610
aload 0 /* this */
aload 1 /* callable */
putfield org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.callable:Ljava/util/concurrent/Callable;
1: .line 611
aload 0 /* this */
invokevirtual org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.start:()V
2: .line 613
aload 0 /* this */
invokevirtual org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.join:()V
3: .line 614
aload 0 /* this */
getfield org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.result:Ljava/lang/Object;
4: areturn
5: .line 616
StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 2 /* ex */
start local 2 // java.lang.InterruptedException ex
6: .line 617
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
7: .line 618
new java.lang.IllegalStateException
dup
aload 2 /* ex */
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 // java.lang.InterruptedException ex
end local 1 // java.util.concurrent.Callable callable
end local 0 // org.springframework.boot.devtools.restart.Restarter$LeakSafeThread this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/boot/devtools/restart/Restarter$LeakSafeThread;
0 8 1 callable Ljava/util/concurrent/Callable<TV;>;
6 8 2 ex Ljava/lang/InterruptedException;
Exception table:
from to target type
2 4 5 Class java.lang.InterruptedException
Signature: <V:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TV;>;)TV;
MethodParameters:
Name Flags
callable
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 // org.springframework.boot.devtools.restart.Restarter$LeakSafeThread this
0: .line 628
aload 0 /* this */
getfield org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.this$0:Lorg/springframework/boot/devtools/restart/Restarter;
getfield org.springframework.boot.devtools.restart.Restarter.leakSafeThreads:Ljava/util/concurrent/BlockingDeque;
new org.springframework.boot.devtools.restart.Restarter$LeakSafeThread
dup
aload 0 /* this */
getfield org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.this$0:Lorg/springframework/boot/devtools/restart/Restarter;
invokespecial org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.<init>:(Lorg/springframework/boot/devtools/restart/Restarter;)V
invokeinterface java.util.concurrent.BlockingDeque.put:(Ljava/lang/Object;)V
1: .line 629
aload 0 /* this */
aload 0 /* this */
getfield org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.callable:Ljava/util/concurrent/Callable;
invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
putfield org.springframework.boot.devtools.restart.Restarter$LeakSafeThread.result:Ljava/lang/Object;
2: .line 630
goto 6
3: .line 631
StackMap locals:
StackMap stack: java.lang.Exception
astore 1 /* ex */
start local 1 // java.lang.Exception ex
4: .line 632
aload 1 /* ex */
invokevirtual java.lang.Exception.printStackTrace:()V
5: .line 633
iconst_1
invokestatic java.lang.System.exit:(I)V
end local 1 // java.lang.Exception ex
6: .line 635
StackMap locals:
StackMap stack:
return
end local 0 // org.springframework.boot.devtools.restart.Restarter$LeakSafeThread this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/boot/devtools/restart/Restarter$LeakSafeThread;
4 6 1 ex Ljava/lang/Exception;
Exception table:
from to target type
0 2 3 Class java.lang.Exception
}
SourceFile: "Restarter.java"
NestHost: org.springframework.boot.devtools.restart.Restarter
InnerClasses:
private LeakSafeThread = org.springframework.boot.devtools.restart.Restarter$LeakSafeThread of org.springframework.boot.devtools.restart.Restarter