class sun.awt.X11.InfoWindow$Balloon$Displayer implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.awt.X11.InfoWindow$Balloon$Displayer
super_class: java.lang.Object
{
final int MAX_CONCURRENT_MSGS;
descriptor: I
flags: (0x0010) ACC_FINAL
ConstantValue: 10
java.util.concurrent.ArrayBlockingQueue<sun.awt.X11.InfoWindow$Balloon$Message> messageQueue;
descriptor: Ljava/util/concurrent/ArrayBlockingQueue;
flags: (0x0000)
Signature: Ljava/util/concurrent/ArrayBlockingQueue<Lsun/awt/X11/InfoWindow$Balloon$Message;>;
boolean isDisplayed;
descriptor: Z
flags: (0x0000)
final java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0010) ACC_FINAL
final sun.awt.X11.InfoWindow$Balloon this$1;
descriptor: Lsun/awt/X11/InfoWindow$Balloon;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.awt.X11.InfoWindow$Balloon);
descriptor: (Lsun/awt/X11/InfoWindow$Balloon;)V
flags: (0x0000)
Code:
stack=9, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.awt.X11.InfoWindow$Balloon$Displayer.this$1:Lsun/awt/X11/InfoWindow$Balloon;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 10
putfield sun.awt.X11.InfoWindow$Balloon$Displayer.MAX_CONCURRENT_MSGS:I
2: aload 0
new java.util.concurrent.ArrayBlockingQueue
dup
bipush 10
invokespecial java.util.concurrent.ArrayBlockingQueue.<init>:(I)V
putfield sun.awt.X11.InfoWindow$Balloon$Displayer.messageQueue:Ljava/util/concurrent/ArrayBlockingQueue;
3: aload 0
new java.lang.Thread
dup
aconst_null
aload 0
ldc "Displayer"
lconst_0
iconst_0
invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JZ)V
putfield sun.awt.X11.InfoWindow$Balloon$Displayer.thread:Ljava/lang/Thread;
4: aload 0
getfield sun.awt.X11.InfoWindow$Balloon$Displayer.thread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/awt/X11/InfoWindow$Balloon$Displayer;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 1: aload 0
getfield sun.awt.X11.InfoWindow$Balloon$Displayer.messageQueue:Ljava/util/concurrent/ArrayBlockingQueue;
invokevirtual java.util.concurrent.ArrayBlockingQueue.take:()Ljava/lang/Object;
checkcast sun.awt.X11.InfoWindow$Balloon$Message
astore 1
2: goto 5
StackMap locals: sun.awt.X11.InfoWindow$Balloon$Displayer sun.awt.X11.InfoWindow$Balloon$Message
StackMap stack: java.lang.InterruptedException
3: pop
4: return
5: StackMap locals:
StackMap stack:
invokestatic sun.awt.X11.XToolkit.awtLock:()V
6: goto 12
7: StackMap locals:
StackMap stack:
invokestatic sun.awt.X11.XToolkit.awtLockWait:()V
8: goto 12
StackMap locals:
StackMap stack: java.lang.InterruptedException
9: pop
10: invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
11: return
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.X11.InfoWindow$Balloon$Displayer.isDisplayed:Z
ifne 7
13: aload 0
iconst_1
putfield sun.awt.X11.InfoWindow$Balloon$Displayer.isDisplayed:Z
14: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 2
16: invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
17: aload 2
athrow
18: StackMap locals:
StackMap stack:
invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
19: aload 0
getfield sun.awt.X11.InfoWindow$Balloon$Displayer.this$1:Lsun/awt/X11/InfoWindow$Balloon;
aload 1
getfield sun.awt.X11.InfoWindow$Balloon$Message.caption:Ljava/lang/String;
aload 1
getfield sun.awt.X11.InfoWindow$Balloon$Message.text:Ljava/lang/String;
aload 1
getfield sun.awt.X11.InfoWindow$Balloon$Message.messageType:Ljava/lang/String;
invokevirtual sun.awt.X11.InfoWindow$Balloon._display:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
end local 1 20: goto 0
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/awt/X11/InfoWindow$Balloon$Displayer;
1 20 1 msg Lsun/awt/X11/InfoWindow$Balloon$Message;
Exception table:
from to target type
1 2 3 Class java.lang.InterruptedException
7 8 9 Class java.lang.InterruptedException
6 10 15 any
12 15 15 any
void display(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.awt.X11.InfoWindow$Balloon$Displayer.messageQueue:Ljava/util/concurrent/ArrayBlockingQueue;
new sun.awt.X11.InfoWindow$Balloon$Message
dup
aload 1
aload 2
aload 3
invokespecial sun.awt.X11.InfoWindow$Balloon$Message.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.util.concurrent.ArrayBlockingQueue.offer:(Ljava/lang/Object;)Z
pop
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/X11/InfoWindow$Balloon$Displayer;
0 2 1 caption Ljava/lang/String;
0 2 2 text Ljava/lang/String;
0 2 3 messageType Ljava/lang/String;
MethodParameters:
Name Flags
caption
text
messageType
}
SourceFile: "InfoWindow.java"
NestHost: sun.awt.X11.InfoWindow
InnerClasses:
public Balloon = sun.awt.X11.InfoWindow$Balloon of sun.awt.X11.InfoWindow
private Displayer = sun.awt.X11.InfoWindow$Balloon$Displayer of sun.awt.X11.InfoWindow$Balloon
private Message = sun.awt.X11.InfoWindow$Balloon$Message of sun.awt.X11.InfoWindow$Balloon