public final class sun.awt.AWTAutoShutdown implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.awt.AWTAutoShutdown
super_class: java.lang.Object
{
private static final sun.awt.AWTAutoShutdown theInstance;
descriptor: Lsun/awt/AWTAutoShutdown;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.Object mainLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object activationLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.Thread> busyThreadSet;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/Thread;>;
private boolean toolkitThreadBusy;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<java.lang.Object, java.lang.Object> peerMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
private java.lang.Thread blockerThread;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
private boolean timeoutPassed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static final int SAFETY_TIMEOUT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1000
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new sun.awt.AWTAutoShutdown
dup
invokespecial sun.awt.AWTAutoShutdown.<init>:()V
putstatic sun.awt.AWTAutoShutdown.theInstance:Lsun/awt/AWTAutoShutdown;
1: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
3: aload 0
new java.util.HashSet
dup
bipush 7
invokespecial java.util.HashSet.<init>:(I)V
putfield sun.awt.AWTAutoShutdown.busyThreadSet:Ljava/util/Set;
4: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.toolkitThreadBusy:Z
5: aload 0
new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
putfield sun.awt.AWTAutoShutdown.peerMap:Ljava/util/Map;
6: aload 0
aconst_null
putfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
7: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/awt/AWTAutoShutdown;
public static sun.awt.AWTAutoShutdown getInstance();
descriptor: ()Lsun/awt/AWTAutoShutdown;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.awt.AWTAutoShutdown.theInstance:Lsun/awt/AWTAutoShutdown;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static void notifyToolkitThreadBusy();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic sun.awt.AWTAutoShutdown.getInstance:()Lsun/awt/AWTAutoShutdown;
iconst_1
invokevirtual sun.awt.AWTAutoShutdown.setToolkitBusy:(Z)V
1: return
LocalVariableTable:
Start End Slot Name Signature
public static void notifyToolkitThreadFree();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic sun.awt.AWTAutoShutdown.getInstance:()Lsun/awt/AWTAutoShutdown;
iconst_0
invokevirtual sun.awt.AWTAutoShutdown.setToolkitBusy:(Z)V
1: return
LocalVariableTable:
Start End Slot Name Signature
public void notifyThreadBusy(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 0
getfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
ifnonnull 7
5: aload 0
invokevirtual sun.awt.AWTAutoShutdown.activateBlockerThread:()V
6: goto 10
StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
7: aload 0
invokevirtual sun.awt.AWTAutoShutdown.isReadyToShutdown:()Z
ifeq 10
8: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
9: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AWTAutoShutdown.busyThreadSet:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
11: aload 3
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 3
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
aload 2
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 2
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/awt/AWTAutoShutdown;
0 20 1 thread Ljava/lang/Thread;
Exception table:
from to target type
4 12 13 any
13 14 13 any
3 16 17 any
17 18 17 any
MethodParameters:
Name Flags
thread final
public void notifyThreadFree(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 0
getfield sun.awt.AWTAutoShutdown.busyThreadSet:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
5: aload 0
invokevirtual sun.awt.AWTAutoShutdown.isReadyToShutdown:()Z
ifeq 8
6: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
7: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
8: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 3
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 2
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/awt/AWTAutoShutdown;
0 17 1 thread Ljava/lang/Thread;
Exception table:
from to target type
4 9 10 any
10 11 10 any
3 13 14 any
14 15 14 any
MethodParameters:
Name Flags
thread final
void notifyPeerMapUpdated();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
invokevirtual sun.awt.AWTAutoShutdown.isReadyToShutdown:()Z
ifne 5
aload 0
getfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
ifnonnull 5
3: aload 0
invokedynamic run(Lsun/awt/AWTAutoShutdown;)Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
sun/awt/AWTAutoShutdown.lambda$0()Ljava/lang/Void; (7)
()Ljava/lang/Void;
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
4: goto 7
5: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
6: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
7: StackMap locals:
StackMap stack:
aload 2
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 1
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 1
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/awt/AWTAutoShutdown;
Exception table:
from to target type
2 8 9 any
9 10 9 any
1 12 13 any
13 14 13 any
private boolean isReadyToShutdown();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.AWTAutoShutdown.toolkitThreadBusy:Z
ifne 4
1: aload 0
getfield sun.awt.AWTAutoShutdown.peerMap:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifeq 4
2: aload 0
getfield sun.awt.AWTAutoShutdown.busyThreadSet:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifeq 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/awt/AWTAutoShutdown;
private void setToolkitBusy(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield sun.awt.AWTAutoShutdown.toolkitThreadBusy:Z
if_icmpeq 25
1: aload 0
getfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: iload 1
aload 0
getfield sun.awt.AWTAutoShutdown.toolkitThreadBusy:Z
if_icmpeq 17
4: iload 1
ifeq 13
5: aload 0
getfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
ifnonnull 8
6: aload 0
invokevirtual sun.awt.AWTAutoShutdown.activateBlockerThread:()V
7: goto 11
StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
8: aload 0
invokevirtual sun.awt.AWTAutoShutdown.isReadyToShutdown:()Z
ifeq 11
9: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
10: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
11: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield sun.awt.AWTAutoShutdown.toolkitThreadBusy:Z
12: goto 17
13: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield sun.awt.AWTAutoShutdown.toolkitThreadBusy:Z
14: aload 0
invokevirtual sun.awt.AWTAutoShutdown.isReadyToShutdown:()Z
ifeq 17
15: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
16: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
17: StackMap locals:
StackMap stack:
aload 3
monitorexit
18: goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
19: aload 3
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
aload 2
monitorexit
22: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
23: aload 2
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/awt/AWTAutoShutdown;
0 26 1 busy Z
Exception table:
from to target type
3 18 19 any
19 20 19 any
2 22 23 any
23 24 23 any
MethodParameters:
Name Flags
busy final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
4: goto 15
5: StackMap locals: java.lang.Thread int java.lang.Object
StackMap stack:
aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
invokevirtual java.lang.Object.wait:()V
6: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
7: goto 14
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
ifeq 12
9: aload 0
iconst_0
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
10: aload 0
aconst_null
putfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
11: goto 15
12: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.awt.AWTAutoShutdown.timeoutPassed:Z
13: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
ldc 1000
invokevirtual java.lang.Object.wait:(J)V
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.AWTAutoShutdown.isReadyToShutdown:()Z
ifne 8
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
aload 1
if_acmpeq 5
16: goto 25
StackMap locals:
StackMap stack: java.lang.InterruptedException
17: pop
18: iconst_1
istore 2
19: aload 0
getfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
aload 1
if_acmpne 27
20: aload 0
aconst_null
putfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
goto 27
21: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
22: aload 0
getfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
aload 1
if_acmpne 24
23: aload 0
aconst_null
putfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
24: StackMap locals: java.lang.Throwable
StackMap stack:
aload 4
athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
aload 1
if_acmpne 27
26: aload 0
aconst_null
putfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
27: StackMap locals:
StackMap stack:
aload 3
monitorexit
28: goto 31
StackMap locals:
StackMap stack: java.lang.Throwable
29: aload 3
monitorexit
30: athrow
31: StackMap locals:
StackMap stack:
iload 2
ifne 33
32: invokestatic sun.awt.AppContext.stopEventDispatchThreads:()V
33: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/awt/AWTAutoShutdown;
1 34 1 currentThread Ljava/lang/Thread;
2 34 2 interrupted Z
Exception table:
from to target type
3 16 17 Class java.lang.InterruptedException
3 19 21 any
3 28 29 any
29 30 29 any
static java.awt.AWTEvent getShutdownEvent();
descriptor: ()Ljava/awt/AWTEvent;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new sun.awt.AWTAutoShutdown$1
dup
invokestatic sun.awt.AWTAutoShutdown.getInstance:()Lsun/awt/AWTAutoShutdown;
iconst_0
invokespecial sun.awt.AWTAutoShutdown$1.<init>:(Ljava/lang/Object;I)V
areturn
LocalVariableTable:
Start End Slot Name Signature
private void activateBlockerThread();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: new java.lang.Thread
dup
invokestatic sun.misc.ThreadGroupUtils.getRootThreadGroup:()Ljava/lang/ThreadGroup;
aload 0
ldc "AWT-Shutdown"
invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
aconst_null
invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
2: aload 1
iconst_0
invokevirtual java.lang.Thread.setDaemon:(Z)V
3: aload 0
aload 1
putfield sun.awt.AWTAutoShutdown.blockerThread:Ljava/lang/Thread;
4: aload 1
invokevirtual java.lang.Thread.start:()V
5: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
invokevirtual java.lang.Object.wait:()V
6: goto 10
StackMap locals: sun.awt.AWTAutoShutdown java.lang.Thread
StackMap stack: java.lang.InterruptedException
7: astore 2
start local 2 8: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "AWT blocker activation interrupted:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: aload 2
invokevirtual java.lang.InterruptedException.printStackTrace:()V
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/awt/AWTAutoShutdown;
1 11 1 thread Ljava/lang/Thread;
8 10 2 e Ljava/lang/InterruptedException;
Exception table:
from to target type
5 6 7 Class java.lang.InterruptedException
final void registerPeer(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 4
monitorenter
2: aload 0
getfield sun.awt.AWTAutoShutdown.peerMap:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
invokevirtual sun.awt.AWTAutoShutdown.notifyPeerMapUpdated:()V
4: aload 4
monitorexit
5: goto 8
StackMap locals: sun.awt.AWTAutoShutdown java.lang.Object java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 4
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 3
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/awt/AWTAutoShutdown;
0 13 1 target Ljava/lang/Object;
0 13 2 peer Ljava/lang/Object;
Exception table:
from to target type
2 5 6 any
6 7 6 any
1 9 10 any
10 11 10 any
MethodParameters:
Name Flags
target final
peer final
final void unregisterPeer(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 4
monitorenter
2: aload 0
getfield sun.awt.AWTAutoShutdown.peerMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 2
if_acmpne 5
3: aload 0
getfield sun.awt.AWTAutoShutdown.peerMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
invokevirtual sun.awt.AWTAutoShutdown.notifyPeerMapUpdated:()V
5: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 4
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 4
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 3
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/awt/AWTAutoShutdown;
0 14 1 target Ljava/lang/Object;
0 14 2 peer Ljava/lang/Object;
Exception table:
from to target type
2 6 7 any
7 8 7 any
1 10 11 any
11 12 11 any
MethodParameters:
Name Flags
target final
peer final
final java.lang.Object getPeer(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
getfield sun.awt.AWTAutoShutdown.peerMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 3
monitorexit
3: aload 2
monitorexit
4: areturn
5: StackMap locals: sun.awt.AWTAutoShutdown java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
6: athrow
7: StackMap locals: sun.awt.AWTAutoShutdown java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
8: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/awt/AWTAutoShutdown;
0 9 1 target Ljava/lang/Object;
Exception table:
from to target type
2 3 5 any
5 6 5 any
1 4 7 any
5 8 7 any
MethodParameters:
Name Flags
target final
final void dumpPeers(sun.util.logging.PlatformLogger);
descriptor: (Lsun/util/logging/PlatformLogger;)V
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getstatic sun.util.logging.PlatformLogger$Level.FINE:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 16
1: aload 0
getfield sun.awt.AWTAutoShutdown.activationLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield sun.awt.AWTAutoShutdown.mainLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 1
ldc "Mapped peers:"
invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
4: aload 0
getfield sun.awt.AWTAutoShutdown.peerMap:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: sun.awt.AWTAutoShutdown sun.util.logging.PlatformLogger java.lang.Object java.lang.Object top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 4
start local 4 6: aload 1
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "->"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.awt.AWTAutoShutdown.peerMap:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 3
monitorexit
9: goto 12
StackMap locals: sun.awt.AWTAutoShutdown sun.util.logging.PlatformLogger java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 2
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/awt/AWTAutoShutdown;
0 17 1 aLog Lsun/util/logging/PlatformLogger;
6 7 4 key Ljava/lang/Object;
Exception table:
from to target type
3 9 10 any
10 11 10 any
2 13 14 any
14 15 14 any
MethodParameters:
Name Flags
aLog final
private java.lang.Void lambda$0();
descriptor: ()Ljava/lang/Void;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.awt.AWTAutoShutdown.activateBlockerThread:()V
1: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/AWTAutoShutdown;
}
SourceFile: "AWTAutoShutdown.java"
NestMembers:
sun.awt.AWTAutoShutdown$1
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
sun.awt.AWTAutoShutdown$1
public final Level = sun.util.logging.PlatformLogger$Level of sun.util.logging.PlatformLogger