public class com.sun.imageio.stream.StreamCloser
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.imageio.stream.StreamCloser
super_class: java.lang.Object
{
private static java.util.WeakHashMap<com.sun.imageio.stream.StreamCloser$CloseAction, java.lang.Object> toCloseQueue;
descriptor: Ljava/util/WeakHashMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/WeakHashMap<Lcom/sun/imageio/stream/StreamCloser$CloseAction;Ljava/lang/Object;>;
private static java.lang.Thread streamCloser;
descriptor: Ljava/lang/Thread;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/imageio/stream/StreamCloser;
public static void addToQueue(com.sun.imageio.stream.StreamCloser$CloseAction);
descriptor: (Lcom/sun/imageio/stream/StreamCloser$CloseAction;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: ldc Lcom/sun/imageio/stream/StreamCloser;
dup
astore 1
monitorenter
1: getstatic com.sun.imageio.stream.StreamCloser.toCloseQueue:Ljava/util/WeakHashMap;
ifnonnull 4
2: new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
3: putstatic com.sun.imageio.stream.StreamCloser.toCloseQueue:Ljava/util/WeakHashMap;
4: StackMap locals: java.lang.Class
StackMap stack:
getstatic com.sun.imageio.stream.StreamCloser.toCloseQueue:Ljava/util/WeakHashMap;
aload 0
aconst_null
invokevirtual java.util.WeakHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: getstatic com.sun.imageio.stream.StreamCloser.streamCloser:Ljava/lang/Thread;
ifnonnull 8
6: new com.sun.imageio.stream.StreamCloser$1
dup
invokespecial com.sun.imageio.stream.StreamCloser$1.<init>:()V
astore 2
start local 2 7: aload 2
invokedynamic run(Ljava/lang/Runnable;)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;
com/sun/imageio/stream/StreamCloser.lambda$0(Ljava/lang/Runnable;)Ljava/lang/Object; (6)
()Ljava/lang/Object;
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
end local 2 8: StackMap locals:
StackMap stack:
aload 1
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 1
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 ca Lcom/sun/imageio/stream/StreamCloser$CloseAction;
7 8 2 streamCloserRunnable Ljava/lang/Runnable;
Exception table:
from to target type
1 9 10 any
10 11 10 any
MethodParameters:
Name Flags
ca
public static void removeFromQueue(com.sun.imageio.stream.StreamCloser$CloseAction);
descriptor: (Lcom/sun/imageio/stream/StreamCloser$CloseAction;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: ldc Lcom/sun/imageio/stream/StreamCloser;
dup
astore 1
monitorenter
1: getstatic com.sun.imageio.stream.StreamCloser.toCloseQueue:Ljava/util/WeakHashMap;
ifnull 3
2: getstatic com.sun.imageio.stream.StreamCloser.toCloseQueue:Ljava/util/WeakHashMap;
aload 0
invokevirtual java.util.WeakHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: java.lang.Class
StackMap stack:
aload 1
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 ca Lcom/sun/imageio/stream/StreamCloser$CloseAction;
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
ca
public static com.sun.imageio.stream.StreamCloser$CloseAction createCloseAction(javax.imageio.stream.ImageInputStream);
descriptor: (Ljavax/imageio/stream/ImageInputStream;)Lcom/sun/imageio/stream/StreamCloser$CloseAction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.sun.imageio.stream.StreamCloser$CloseAction
dup
aload 0
invokespecial com.sun.imageio.stream.StreamCloser$CloseAction.<init>:(Ljavax/imageio/stream/ImageInputStream;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 iis Ljavax/imageio/stream/ImageInputStream;
MethodParameters:
Name Flags
iis
private static java.lang.Object lambda$0(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=8, locals=2, args_size=1
0: invokestatic sun.awt.util.ThreadGroupUtils.getRootThreadGroup:()Ljava/lang/ThreadGroup;
astore 1
start local 1 1: new java.lang.Thread
dup
aload 1
aload 0
2: ldc "StreamCloser"
lconst_0
iconst_0
3: invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JZ)V
putstatic com.sun.imageio.stream.StreamCloser.streamCloser:Ljava/lang/Thread;
4: getstatic com.sun.imageio.stream.StreamCloser.streamCloser:Ljava/lang/Thread;
aconst_null
invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
5: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
getstatic com.sun.imageio.stream.StreamCloser.streamCloser:Ljava/lang/Thread;
invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
6: aconst_null
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
1 7 1 tg Ljava/lang/ThreadGroup;
}
SourceFile: "StreamCloser.java"
NestMembers:
com.sun.imageio.stream.StreamCloser$1 com.sun.imageio.stream.StreamCloser$CloseAction
InnerClasses:
com.sun.imageio.stream.StreamCloser$1
public final CloseAction = com.sun.imageio.stream.StreamCloser$CloseAction of com.sun.imageio.stream.StreamCloser
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles