public final class sun.awt.AppContext
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.awt.AppContext
super_class: java.lang.Object
{
private static final sun.util.logging.PlatformLogger log;
descriptor: Lsun/util/logging/PlatformLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final java.lang.Object EVENT_QUEUE_KEY;
descriptor: Ljava/lang/Object;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.Object EVENT_QUEUE_LOCK_KEY;
descriptor: Ljava/lang/Object;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.Object EVENT_QUEUE_COND_KEY;
descriptor: Ljava/lang/Object;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.ThreadGroup, sun.awt.AppContext> threadGroup2appContext;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/ThreadGroup;Lsun/awt/AppContext;>;
private static volatile sun.awt.AppContext mainAppContext;
descriptor: Lsun/awt/AppContext;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private static final java.lang.Object getAppContextLock;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Map<java.lang.Object, java.lang.Object> table;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
private final java.lang.ThreadGroup threadGroup;
descriptor: Ljava/lang/ThreadGroup;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.beans.PropertyChangeSupport changeSupport;
descriptor: Ljava/beans/PropertyChangeSupport;
flags: (0x0002) ACC_PRIVATE
public static final java.lang.String DISPOSED_PROPERTY_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "disposed"
public static final java.lang.String GUI_DISPOSED;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "guidisposed"
private volatile sun.awt.AppContext$State state;
descriptor: Lsun/awt/AppContext$State;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicInteger numAppContexts;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.ClassLoader contextClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.lang.ThreadLocal<sun.awt.AppContext> threadAppContext;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Lsun/awt/AppContext;>;
private long DISPOSAL_TIMEOUT;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long THREAD_INTERRUPT_TIMEOUT;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private sun.awt.MostRecentKeyValue mostRecentKeyValue;
descriptor: Lsun/awt/MostRecentKeyValue;
flags: (0x0002) ACC_PRIVATE
private sun.awt.MostRecentKeyValue shadowMostRecentKeyValue;
descriptor: Lsun/awt/MostRecentKeyValue;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "sun.awt.AppContext"
invokestatic sun.util.logging.PlatformLogger.getLogger:(Ljava/lang/String;)Lsun/util/logging/PlatformLogger;
putstatic sun.awt.AppContext.log:Lsun/util/logging/PlatformLogger;
1: new java.lang.StringBuffer
dup
ldc "EventQueue"
invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
putstatic sun.awt.AppContext.EVENT_QUEUE_KEY:Ljava/lang/Object;
2: new java.lang.StringBuilder
dup
ldc "EventQueue.Lock"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
putstatic sun.awt.AppContext.EVENT_QUEUE_LOCK_KEY:Ljava/lang/Object;
3: new java.lang.StringBuilder
dup
ldc "EventQueue.Condition"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
putstatic sun.awt.AppContext.EVENT_QUEUE_COND_KEY:Ljava/lang/Object;
4: new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
5: putstatic sun.awt.AppContext.threadGroup2appContext:Ljava/util/Map;
6: aconst_null
putstatic sun.awt.AppContext.mainAppContext:Lsun/awt/AppContext;
7: new sun.awt.AppContext$GetAppContextLock
dup
invokespecial sun.awt.AppContext$GetAppContextLock.<init>:()V
putstatic sun.awt.AppContext.getAppContextLock:Ljava/lang/Object;
8: new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putstatic sun.awt.AppContext.numAppContexts:Ljava/util/concurrent/atomic/AtomicInteger;
9: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
10: putstatic sun.awt.AppContext.threadAppContext:Ljava/lang/ThreadLocal;
11: new sun.awt.AppContext$1
dup
invokespecial sun.awt.AppContext$1.<init>:()V
invokestatic jdk.internal.access.SharedSecrets.setJavaAWTAccess:(Ljdk/internal/access/JavaAWTAccess;)V
12: return
LocalVariableTable:
Start End Slot Name Signature
public static java.util.Set<sun.awt.AppContext> getAppContexts();
descriptor: ()Ljava/util/Set;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic sun.awt.AppContext.threadGroup2appContext:Ljava/util/Map;
dup
astore 0
monitorenter
1: new java.util.HashSet
dup
getstatic sun.awt.AppContext.threadGroup2appContext:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
aload 0
monitorexit
2: areturn
3: StackMap locals: java.util.Map
StackMap stack: java.lang.Throwable
aload 0
monitorexit
4: athrow
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
1 2 3 any
3 4 3 any
Signature: ()Ljava/util/Set<Lsun/awt/AppContext;>;
public boolean isDisposed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.AppContext.state:Lsun/awt/AppContext$State;
getstatic sun.awt.AppContext$State.DISPOSED:Lsun/awt/AppContext$State;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/AppContext;
void <init>(java.lang.ThreadGroup);
descriptor: (Ljava/lang/ThreadGroup;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.awt.AppContext.table:Ljava/util/Map;
2: aload 0
aconst_null
putfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
3: aload 0
getstatic sun.awt.AppContext$State.VALID:Lsun/awt/AppContext$State;
putfield sun.awt.AppContext.state:Lsun/awt/AppContext$State;
4: aload 0
ldc 5000
putfield sun.awt.AppContext.DISPOSAL_TIMEOUT:J
5: aload 0
ldc 1000
putfield sun.awt.AppContext.THREAD_INTERRUPT_TIMEOUT:J
6: aload 0
aconst_null
putfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
7: aload 0
aconst_null
putfield sun.awt.AppContext.shadowMostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
8: getstatic sun.awt.AppContext.numAppContexts:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
9: aload 0
aload 1
putfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
10: getstatic sun.awt.AppContext.threadGroup2appContext:Ljava/util/Map;
aload 1
aload 0
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 0
12: new sun.awt.AppContext$2
dup
aload 0
invokespecial sun.awt.AppContext$2.<init>:(Lsun/awt/AppContext;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.ClassLoader
13: putfield sun.awt.AppContext.contextClassLoader:Ljava/lang/ClassLoader;
14: new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
astore 2
start local 2 15: aload 0
getstatic sun.awt.AppContext.EVENT_QUEUE_LOCK_KEY:Ljava/lang/Object;
aload 2
invokevirtual sun.awt.AppContext.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: aload 2
invokeinterface java.util.concurrent.locks.Lock.newCondition:()Ljava/util/concurrent/locks/Condition;
astore 3
start local 3 17: aload 0
getstatic sun.awt.AppContext.EVENT_QUEUE_COND_KEY:Ljava/lang/Object;
aload 3
invokevirtual sun.awt.AppContext.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/awt/AppContext;
0 19 1 threadGroup Ljava/lang/ThreadGroup;
15 19 2 eventQueuePushPopLock Ljava/util/concurrent/locks/Lock;
17 19 3 eventQueuePushPopCond Ljava/util/concurrent/locks/Condition;
MethodParameters:
Name Flags
threadGroup
private static void initMainAppContext();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new sun.awt.AppContext$3
dup
invokespecial sun.awt.AppContext$3.<init>:()V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
1: return
LocalVariableTable:
Start End Slot Name Signature
public static sun.awt.AppContext getAppContext();
descriptor: ()Lsun/awt/AppContext;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: getstatic sun.awt.AppContext.numAppContexts:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
iconst_1
if_icmpne 2
getstatic sun.awt.AppContext.mainAppContext:Lsun/awt/AppContext;
ifnull 2
1: getstatic sun.awt.AppContext.mainAppContext:Lsun/awt/AppContext;
areturn
2: StackMap locals:
StackMap stack:
getstatic sun.awt.AppContext.threadAppContext:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.awt.AppContext
astore 0
start local 0 3: aload 0
ifnonnull 5
4: new sun.awt.AppContext$4
dup
invokespecial sun.awt.AppContext$4.<init>:()V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast sun.awt.AppContext
astore 0
5: StackMap locals: sun.awt.AppContext
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
3 6 0 appContext Lsun/awt/AppContext;
public static boolean isMainContext(sun.awt.AppContext);
descriptor: (Lsun/awt/AppContext;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
getstatic sun.awt.AppContext.mainAppContext:Lsun/awt/AppContext;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 ctx Lsun/awt/AppContext;
MethodParameters:
Name Flags
ctx
private static sun.awt.AppContext getExecutionAppContext();
descriptor: ()Lsun/awt/AppContext;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=3, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: aload 0
ifnull 6
2: aload 0
instanceof sun.awt.AWTSecurityManager
ifeq 6
3: aload 0
checkcast sun.awt.AWTSecurityManager
astore 1
start local 1 4: aload 1
invokevirtual sun.awt.AWTSecurityManager.getAppContext:()Lsun/awt/AppContext;
astore 2
start local 2 5: aload 2
areturn
end local 2 end local 1 6: StackMap locals: java.lang.SecurityManager
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 securityManager Ljava/lang/SecurityManager;
4 6 1 awtSecMgr Lsun/awt/AWTSecurityManager;
5 6 2 secAppContext Lsun/awt/AppContext;
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=1
start local 0 0: aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.parentOf:(Ljava/lang/ThreadGroup;)Z
ifeq 4
1: new java.lang.IllegalThreadStateException
dup
2: ldc "Current Thread is contained within AppContext to be disposed."
3: invokespecial java.lang.IllegalThreadStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
dup
astore 1
monitorenter
5: aload 0
getfield sun.awt.AppContext.state:Lsun/awt/AppContext$State;
getstatic sun.awt.AppContext$State.VALID:Lsun/awt/AppContext$State;
if_acmpeq 8
6: aload 1
monitorexit
7: return
8: StackMap locals: sun.awt.AppContext
StackMap stack:
aload 0
getstatic sun.awt.AppContext$State.BEING_DISPOSED:Lsun/awt/AppContext$State;
putfield sun.awt.AppContext.state:Lsun/awt/AppContext$State;
9: aload 1
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 1
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
astore 1
start local 1 14: aload 1
ifnull 16
15: aload 1
ldc "disposed"
iconst_0
iconst_1
invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;ZZ)V
16: StackMap locals: java.beans.PropertyChangeSupport
StackMap stack:
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
astore 2
start local 2 17: new sun.awt.AppContext$5
dup
aload 0
aload 1
aload 2
invokespecial sun.awt.AppContext$5.<init>:(Lsun/awt/AppContext;Ljava/beans/PropertyChangeSupport;Ljava/lang/Object;)V
astore 3
start local 3 18: aload 2
dup
astore 4
monitorenter
19: aload 0
20: new java.awt.event.InvocationEvent
dup
invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
aload 3
invokespecial java.awt.event.InvocationEvent.<init>:(Ljava/lang/Object;Ljava/lang/Runnable;)V
21: invokestatic sun.awt.SunToolkit.postEvent:(Lsun/awt/AppContext;Ljava/awt/AWTEvent;)V
22: aload 2
aload 0
getfield sun.awt.AppContext.DISPOSAL_TIMEOUT:J
invokevirtual java.lang.Object.wait:(J)V
23: goto 25
StackMap locals: sun.awt.AppContext java.beans.PropertyChangeSupport java.lang.Object java.lang.Runnable java.lang.Object
StackMap stack: java.lang.InterruptedException
24: pop
25: StackMap locals:
StackMap stack:
aload 4
monitorexit
26: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 4
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
new sun.awt.AppContext$6
dup
aload 0
aload 2
invokespecial sun.awt.AppContext$6.<init>:(Lsun/awt/AppContext;Ljava/lang/Object;)V
astore 3
30: aload 2
dup
astore 4
monitorenter
31: aload 0
32: new java.awt.event.InvocationEvent
dup
invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
aload 3
invokespecial java.awt.event.InvocationEvent.<init>:(Ljava/lang/Object;Ljava/lang/Runnable;)V
33: invokestatic sun.awt.SunToolkit.postEvent:(Lsun/awt/AppContext;Ljava/awt/AWTEvent;)V
34: aload 2
aload 0
getfield sun.awt.AppContext.DISPOSAL_TIMEOUT:J
invokevirtual java.lang.Object.wait:(J)V
35: goto 37
StackMap locals: sun.awt.AppContext java.beans.PropertyChangeSupport java.lang.Object java.lang.Runnable java.lang.Object
StackMap stack: java.lang.InterruptedException
36: pop
37: StackMap locals:
StackMap stack:
aload 4
monitorexit
38: goto 41
StackMap locals:
StackMap stack: java.lang.Throwable
39: aload 4
monitorexit
40: athrow
41: StackMap locals:
StackMap stack:
aload 0
dup
astore 4
monitorenter
42: aload 0
getstatic sun.awt.AppContext$State.DISPOSED:Lsun/awt/AppContext$State;
putfield sun.awt.AppContext.state:Lsun/awt/AppContext$State;
43: aload 4
monitorexit
44: goto 47
StackMap locals: sun.awt.AppContext java.beans.PropertyChangeSupport java.lang.Object java.lang.Runnable sun.awt.AppContext
StackMap stack: java.lang.Throwable
45: aload 4
monitorexit
46: athrow
47: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.interrupt:()V
48: invokestatic java.lang.System.currentTimeMillis:()J
lstore 4
start local 4 49: lload 4
aload 0
getfield sun.awt.AppContext.THREAD_INTERRUPT_TIMEOUT:J
ladd
lstore 6
start local 6 50: goto 54
51: StackMap locals: long long
StackMap stack:
ldc 10
invokestatic java.lang.Thread.sleep:(J)V
52: goto 54
StackMap locals:
StackMap stack: java.lang.InterruptedException
53: pop
54: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.activeCount:()I
ifle 57
55: invokestatic java.lang.System.currentTimeMillis:()J
lload 6
56: lcmp
iflt 51
57: StackMap locals:
StackMap stack:
aload 0
invokedynamic run(Lsun/awt/AppContext;)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/AppContext.lambda$0()Ljava/lang/Void; (7)
()Ljava/lang/Void;
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
58: invokestatic java.lang.System.currentTimeMillis:()J
lstore 4
59: lload 4
aload 0
getfield sun.awt.AppContext.THREAD_INTERRUPT_TIMEOUT:J
ladd
lstore 6
60: goto 64
61: StackMap locals:
StackMap stack:
ldc 10
invokestatic java.lang.Thread.sleep:(J)V
62: goto 64
StackMap locals:
StackMap stack: java.lang.InterruptedException
63: pop
64: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.activeCount:()I
ifle 67
65: invokestatic java.lang.System.currentTimeMillis:()J
lload 6
66: lcmp
iflt 61
67: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.activeGroupCount:()I
istore 8
start local 8 68: iload 8
ifle 76
69: iload 8
anewarray java.lang.ThreadGroup
astore 9
start local 9 70: aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
aload 9
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/ThreadGroup;)I
istore 8
71: iconst_0
istore 10
start local 10 72: goto 75
73: StackMap locals: int java.lang.ThreadGroup[] int
StackMap stack:
getstatic sun.awt.AppContext.threadGroup2appContext:Ljava/util/Map;
aload 9
iload 10
aaload
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
74: iinc 10 1
StackMap locals:
StackMap stack:
75: iload 10
iload 8
if_icmplt 73
end local 10 end local 9 76: StackMap locals:
StackMap stack:
getstatic sun.awt.AppContext.threadGroup2appContext:Ljava/util/Map;
aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
77: getstatic sun.awt.AppContext.threadAppContext:Ljava/lang/ThreadLocal;
aconst_null
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
78: aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.destroy:()V
79: goto 81
StackMap locals:
StackMap stack: java.lang.IllegalThreadStateException
80: pop
81: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.table:Ljava/util/Map;
dup
astore 9
monitorenter
82: aload 0
getfield sun.awt.AppContext.table:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
83: aload 9
monitorexit
84: goto 87
StackMap locals: sun.awt.AppContext java.beans.PropertyChangeSupport java.lang.Object java.lang.Runnable long long int java.util.Map
StackMap stack: java.lang.Throwable
85: aload 9
monitorexit
86: athrow
87: StackMap locals:
StackMap stack:
getstatic sun.awt.AppContext.numAppContexts:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
88: aload 0
aconst_null
putfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
89: return
end local 8 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 90 0 this Lsun/awt/AppContext;
14 90 1 changeSupport Ljava/beans/PropertyChangeSupport;
17 90 2 notificationLock Ljava/lang/Object;
18 90 3 runnable Ljava/lang/Runnable;
49 90 4 startTime J
50 90 6 endTime J
68 90 8 numSubGroups I
70 76 9 subGroups [Ljava/lang/ThreadGroup;
72 76 10 subGroup I
Exception table:
from to target type
5 7 11 any
8 10 11 any
11 12 11 any
22 23 24 Class java.lang.InterruptedException
19 26 27 any
27 28 27 any
34 35 36 Class java.lang.InterruptedException
31 38 39 any
39 40 39 any
42 44 45 any
45 46 45 any
51 52 53 Class java.lang.InterruptedException
61 62 63 Class java.lang.InterruptedException
78 79 80 Class java.lang.IllegalThreadStateException
82 84 85 any
85 86 85 any
Exceptions:
throws java.lang.IllegalThreadStateException
static void stopEventDispatchThreads();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=0
0: invokestatic sun.awt.AppContext.getAppContexts:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 1
goto 11
StackMap locals: top java.util.Iterator
StackMap stack:
1: aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.awt.AppContext
astore 0
start local 0 2: aload 0
invokevirtual sun.awt.AppContext.isDisposed:()Z
ifeq 4
3: goto 11
4: StackMap locals: sun.awt.AppContext java.util.Iterator
StackMap stack:
new sun.awt.AppContext$PostShutdownEventRunnable
dup
aload 0
invokespecial sun.awt.AppContext$PostShutdownEventRunnable.<init>:(Lsun/awt/AppContext;)V
astore 2
start local 2 5: aload 0
invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
if_acmpeq 10
6: new sun.awt.AppContext$CreateThreadAction
dup
aload 0
aload 2
invokespecial sun.awt.AppContext$CreateThreadAction.<init>:(Lsun/awt/AppContext;Ljava/lang/Runnable;)V
astore 3
start local 3 7: aload 3
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Thread
astore 4
start local 4 8: aload 4
invokevirtual java.lang.Thread.start:()V
end local 4 end local 3 9: goto 11
10: StackMap locals: java.lang.Runnable
StackMap stack:
aload 2
invokeinterface java.lang.Runnable.run:()V
end local 2 end local 0 11: StackMap locals: top java.util.Iterator
StackMap stack:
aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
12: return
LocalVariableTable:
Start End Slot Name Signature
2 11 0 appContext Lsun/awt/AppContext;
5 11 2 r Ljava/lang/Runnable;
7 9 3 action Ljava/security/PrivilegedAction<Ljava/lang/Thread;>;
8 9 4 thread Ljava/lang/Thread;
public java.lang.Object get(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.AppContext.table:Ljava/util/Map;
dup
astore 2
monitorenter
1: aload 0
getfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
astore 3
start local 3 2: aload 3
ifnull 5
aload 3
getfield sun.awt.MostRecentKeyValue.key:Ljava/lang/Object;
aload 1
if_acmpne 5
3: aload 3
getfield sun.awt.MostRecentKeyValue.value:Ljava/lang/Object;
aload 2
monitorexit
4: areturn
5: StackMap locals: java.util.Map sun.awt.MostRecentKeyValue
StackMap stack:
aload 0
getfield sun.awt.AppContext.table:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 6: aload 0
getfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
ifnonnull 10
7: aload 0
new sun.awt.MostRecentKeyValue
dup
aload 1
aload 4
invokespecial sun.awt.MostRecentKeyValue.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
putfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
8: aload 0
new sun.awt.MostRecentKeyValue
dup
aload 1
aload 4
invokespecial sun.awt.MostRecentKeyValue.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
putfield sun.awt.AppContext.shadowMostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
9: goto 14
10: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
astore 5
start local 5 11: aload 0
getfield sun.awt.AppContext.shadowMostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
aload 1
aload 4
invokevirtual sun.awt.MostRecentKeyValue.setPair:(Ljava/lang/Object;Ljava/lang/Object;)V
12: aload 0
aload 0
getfield sun.awt.AppContext.shadowMostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
putfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
13: aload 0
aload 5
putfield sun.awt.AppContext.shadowMostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
end local 5 14: StackMap locals:
StackMap stack:
aload 4
aload 2
monitorexit
15: areturn
end local 4 end local 3 16: StackMap locals: sun.awt.AppContext java.lang.Object java.util.Map
StackMap stack: java.lang.Throwable
aload 2
monitorexit
17: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/awt/AppContext;
0 18 1 key Ljava/lang/Object;
2 16 3 recent Lsun/awt/MostRecentKeyValue;
6 16 4 value Ljava/lang/Object;
11 14 5 auxKeyValue Lsun/awt/MostRecentKeyValue;
Exception table:
from to target type
1 4 16 any
5 15 16 any
16 17 16 any
MethodParameters:
Name Flags
key
public java.lang.Object put(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.awt.AppContext.table:Ljava/util/Map;
dup
astore 3
monitorenter
1: aload 0
getfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
astore 4
start local 4 2: aload 4
ifnull 4
aload 4
getfield sun.awt.MostRecentKeyValue.key:Ljava/lang/Object;
aload 1
if_acmpne 4
3: aload 4
aload 2
putfield sun.awt.MostRecentKeyValue.value:Ljava/lang/Object;
4: StackMap locals: java.util.Map sun.awt.MostRecentKeyValue
StackMap stack:
aload 0
getfield sun.awt.AppContext.table:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
aload 3
monitorexit
5: areturn
end local 4 6: StackMap locals: sun.awt.AppContext java.lang.Object java.lang.Object java.util.Map
StackMap stack: java.lang.Throwable
aload 3
monitorexit
7: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/awt/AppContext;
0 8 1 key Ljava/lang/Object;
0 8 2 value Ljava/lang/Object;
2 6 4 recent Lsun/awt/MostRecentKeyValue;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
key
value
public java.lang.Object remove(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.AppContext.table:Ljava/util/Map;
dup
astore 2
monitorenter
1: aload 0
getfield sun.awt.AppContext.mostRecentKeyValue:Lsun/awt/MostRecentKeyValue;
astore 3
start local 3 2: aload 3
ifnull 4
aload 3
getfield sun.awt.MostRecentKeyValue.key:Ljava/lang/Object;
aload 1
if_acmpne 4
3: aload 3
aconst_null
putfield sun.awt.MostRecentKeyValue.value:Ljava/lang/Object;
4: StackMap locals: java.util.Map sun.awt.MostRecentKeyValue
StackMap stack:
aload 0
getfield sun.awt.AppContext.table:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
aload 2
monitorexit
5: areturn
end local 3 6: StackMap locals: sun.awt.AppContext java.lang.Object java.util.Map
StackMap stack: java.lang.Throwable
aload 2
monitorexit
7: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/awt/AppContext;
0 8 1 key Ljava/lang/Object;
2 6 3 recent Lsun/awt/MostRecentKeyValue;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
key
public java.lang.ThreadGroup getThreadGroup();
descriptor: ()Ljava/lang/ThreadGroup;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/AppContext;
public java.lang.ClassLoader getContextClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.AppContext.contextClassLoader:Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/AppContext;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "[threadGroup="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/AppContext;
public synchronized java.beans.PropertyChangeListener[] getPropertyChangeListeners();
descriptor: ()[Ljava/beans/PropertyChangeListener;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
ifnonnull 2
1: iconst_0
anewarray java.beans.PropertyChangeListener
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
invokevirtual java.beans.PropertyChangeSupport.getPropertyChangeListeners:()[Ljava/beans/PropertyChangeListener;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/awt/AppContext;
public synchronized void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
descriptor: (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
ifnonnull 4
3: aload 0
new java.beans.PropertyChangeSupport
dup
aload 0
invokespecial java.beans.PropertyChangeSupport.<init>:(Ljava/lang/Object;)V
putfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
aload 1
aload 2
invokevirtual java.beans.PropertyChangeSupport.addPropertyChangeListener:(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/awt/AppContext;
0 6 1 propertyName Ljava/lang/String;
0 6 2 listener Ljava/beans/PropertyChangeListener;
MethodParameters:
Name Flags
propertyName
listener
public synchronized void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
descriptor: (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 1
aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
ifnonnull 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
aload 1
aload 2
invokevirtual java.beans.PropertyChangeSupport.removePropertyChangeListener:(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/awt/AppContext;
0 4 1 propertyName Ljava/lang/String;
0 4 2 listener Ljava/beans/PropertyChangeListener;
MethodParameters:
Name Flags
propertyName
listener
public synchronized java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
ifnonnull 2
1: iconst_0
anewarray java.beans.PropertyChangeListener
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.AppContext.changeSupport:Ljava/beans/PropertyChangeSupport;
aload 1
invokevirtual java.beans.PropertyChangeSupport.getPropertyChangeListeners:(Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/awt/AppContext;
0 3 1 propertyName Ljava/lang/String;
MethodParameters:
Name Flags
propertyName
public static <T> T getSoftReferenceValue(, java.util.function.Supplier<T>);
descriptor: (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: invokestatic sun.awt.AppContext.getAppContext:()Lsun/awt/AppContext;
astore 2
start local 2 1: aload 2
aload 0
invokevirtual sun.awt.AppContext.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.ref.SoftReference
astore 3
start local 3 2: aload 3
ifnull 6
3: aload 3
invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
astore 4
start local 4 4: aload 4
ifnull 6
5: aload 4
areturn
end local 4 6: StackMap locals: sun.awt.AppContext java.lang.ref.SoftReference
StackMap stack:
aload 1
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
astore 4
start local 4 7: new java.lang.ref.SoftReference
dup
aload 4
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
astore 3
8: aload 2
aload 0
aload 3
invokevirtual sun.awt.AppContext.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 key Ljava/lang/Object;
0 10 1 supplier Ljava/util/function/Supplier<TT;>;
1 10 2 appContext Lsun/awt/AppContext;
2 10 3 ref Ljava/lang/ref/SoftReference<TT;>;
4 6 4 object TT;
7 10 4 object TT;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/util/function/Supplier<TT;>;)TT;
MethodParameters:
Name Flags
key
supplier
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
getfield sun.awt.AppContext.threadGroup:Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.stop:()V
1: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/AppContext;
}
SourceFile: "AppContext.java"
NestMembers:
sun.awt.AppContext$1 sun.awt.AppContext$1$1 sun.awt.AppContext$2 sun.awt.AppContext$3 sun.awt.AppContext$4 sun.awt.AppContext$5 sun.awt.AppContext$5$1 sun.awt.AppContext$6 sun.awt.AppContext$CreateThreadAction sun.awt.AppContext$GetAppContextLock sun.awt.AppContext$PostShutdownEventRunnable sun.awt.AppContext$State
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
sun.awt.AppContext$1
sun.awt.AppContext$2
sun.awt.AppContext$3
sun.awt.AppContext$4
sun.awt.AppContext$5
sun.awt.AppContext$6
final CreateThreadAction = sun.awt.AppContext$CreateThreadAction of sun.awt.AppContext
private GetAppContextLock = sun.awt.AppContext$GetAppContextLock of sun.awt.AppContext
final PostShutdownEventRunnable = sun.awt.AppContext$PostShutdownEventRunnable of sun.awt.AppContext
private final State = sun.awt.AppContext$State of sun.awt.AppContext