class com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter
super_class: java.lang.Object
{
final com.sun.glass.ui.monocle.VNCScreen this$0;
descriptor: Lcom/sun/glass/ui/monocle/VNCScreen;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(com.sun.glass.ui.monocle.VNCScreen);
descriptor: (Lcom/sun/glass/ui/monocle/VNCScreen;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter this
0: .line 122
aload 0 /* this */
aload 1
putfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/glass/ui/monocle/VNCScreen$ConnectionAccepter;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=1
start local 0 // com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter this
0: .line 125
bipush 64
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 1 /* buffer */
start local 1 // java.nio.ByteBuffer buffer
1: .line 126
aload 1 /* buffer */
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
2: .line 129
StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
getfield com.sun.glass.ui.monocle.VNCScreen.server:Ljava/nio/channels/ServerSocketChannel;
invokevirtual java.nio.channels.ServerSocketChannel.accept:()Ljava/nio/channels/SocketChannel;
astore 2 /* client */
start local 2 // java.nio.channels.SocketChannel client
3: .line 130
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Connection received from %s\n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
4: .line 131
aload 2 /* client */
invokevirtual java.nio.channels.SocketChannel.getRemoteAddress:()Ljava/net/SocketAddress;
aastore
5: .line 130
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
6: .line 133
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
7: .line 134
aload 1 /* buffer */
ldc "RFB 003.003\n"
invokevirtual java.lang.String.getBytes:()[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
8: .line 135
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
9: .line 136
aload 2 /* client */
aload 1 /* buffer */
invokevirtual java.nio.channels.SocketChannel.write:(Ljava/nio/ByteBuffer;)I
pop
10: .line 138
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
11: .line 139
aload 1 /* buffer */
bipush 12
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
12: .line 140
aload 2 /* client */
aload 1 /* buffer */
invokevirtual java.nio.channels.SocketChannel.read:(Ljava/nio/ByteBuffer;)I
pop
13: .line 141
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
14: .line 142
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Client supports %s\n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
15: .line 143
ldc "UTF-8"
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
16: .line 144
aload 1 /* buffer */
invokevirtual java.nio.charset.Charset.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.toString:()Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
aastore
17: .line 142
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
18: .line 145
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
19: .line 146
aload 1 /* buffer */
iconst_1
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
20: .line 147
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
21: .line 148
aload 2 /* client */
aload 1 /* buffer */
invokevirtual java.nio.channels.SocketChannel.write:(Ljava/nio/ByteBuffer;)I
pop
22: .line 149
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
23: .line 150
aload 1 /* buffer */
iconst_1
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
24: .line 151
aload 2 /* client */
aload 1 /* buffer */
invokevirtual java.nio.channels.SocketChannel.read:(Ljava/nio/ByteBuffer;)I
pop
25: .line 152
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Client share request: %d\n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
26: .line 153
aload 1 /* buffer */
iconst_0
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
27: .line 152
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
28: .line 154
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
29: .line 155
aload 1 /* buffer */
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
getfield com.sun.glass.ui.monocle.VNCScreen.width:I
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
30: .line 156
aload 1 /* buffer */
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
getfield com.sun.glass.ui.monocle.VNCScreen.height:I
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
31: .line 157
aload 1 /* buffer */
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
getfield com.sun.glass.ui.monocle.VNCScreen.depth:I
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
32: .line 158
aload 1 /* buffer */
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
getfield com.sun.glass.ui.monocle.VNCScreen.depth:I
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
33: .line 159
aload 1 /* buffer */
invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 34
iconst_0
goto 35
StackMap locals: com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter java.nio.ByteBuffer java.nio.channels.SocketChannel
StackMap stack: java.nio.ByteBuffer
34: iconst_1
StackMap locals: com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter java.nio.ByteBuffer java.nio.channels.SocketChannel
StackMap stack: java.nio.ByteBuffer int
35: i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
36: .line 160
aload 1 /* buffer */
iconst_1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
37: .line 161
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
getfield com.sun.glass.ui.monocle.VNCScreen.depth:I
bipush 32
if_icmpne 45
38: .line 162
aload 1 /* buffer */
sipush 255
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
39: .line 163
aload 1 /* buffer */
sipush 255
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
40: .line 164
aload 1 /* buffer */
sipush 255
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
41: .line 165
aload 1 /* buffer */
bipush 16
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
42: .line 166
aload 1 /* buffer */
bipush 8
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
43: .line 167
aload 1 /* buffer */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
44: .line 168
goto 51
45: .line 169
StackMap locals:
StackMap stack:
aload 1 /* buffer */
bipush 31
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
46: .line 170
aload 1 /* buffer */
bipush 63
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
47: .line 171
aload 1 /* buffer */
bipush 31
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
48: .line 172
aload 1 /* buffer */
bipush 11
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
49: .line 173
aload 1 /* buffer */
iconst_5
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
50: .line 174
aload 1 /* buffer */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
51: .line 176
StackMap locals:
StackMap stack:
aload 1 /* buffer */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
52: .line 177
aload 1 /* buffer */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
53: .line 178
aload 1 /* buffer */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
54: .line 179
new java.lang.StringBuilder
dup
ldc "JavaFX on "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* client */
invokevirtual java.nio.channels.SocketChannel.getLocalAddress:()Ljava/net/SocketAddress;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3 /* name */
start local 3 // java.lang.String name
55: .line 180
aload 1 /* buffer */
aload 3 /* name */
invokevirtual java.lang.String.length:()I
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
56: .line 181
aload 1 /* buffer */
aload 3 /* name */
invokevirtual java.lang.String.getBytes:()[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
57: .line 182
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
58: .line 183
aload 2 /* client */
aload 1 /* buffer */
invokevirtual java.nio.channels.SocketChannel.write:(Ljava/nio/ByteBuffer;)I
pop
59: .line 184
new com.sun.glass.ui.monocle.VNCScreen$ClientConnection
dup
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
invokespecial com.sun.glass.ui.monocle.VNCScreen$ClientConnection.<init>:(Lcom/sun/glass/ui/monocle/VNCScreen;)V
astore 4 /* cc */
start local 4 // com.sun.glass.ui.monocle.VNCScreen$ClientConnection cc
60: .line 185
aload 4 /* cc */
aload 2 /* client */
putfield com.sun.glass.ui.monocle.VNCScreen$ClientConnection.socket:Ljava/nio/channels/SocketChannel;
61: .line 186
new java.lang.Thread
dup
aload 4 /* cc */
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
astore 5 /* t */
start local 5 // java.lang.Thread t
62: .line 187
aload 5 /* t */
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
63: .line 188
aload 5 /* t */
new java.lang.StringBuilder
dup
ldc "VNC client connection from "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
64: .line 189
aload 2 /* client */
invokevirtual java.nio.channels.SocketChannel.getRemoteAddress:()Ljava/net/SocketAddress;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: .line 188
invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
66: .line 190
aload 5 /* t */
invokevirtual java.lang.Thread.start:()V
67: .line 191
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
getfield com.sun.glass.ui.monocle.VNCScreen.clients:Ljava/util/Set;
dup
astore 6
monitorenter
68: .line 192
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
getfield com.sun.glass.ui.monocle.VNCScreen.clients:Ljava/util/Set;
aload 4 /* cc */
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
69: .line 191
aload 6
monitorexit
70: goto 73
StackMap locals: com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter java.nio.ByteBuffer java.nio.channels.SocketChannel java.lang.String com.sun.glass.ui.monocle.VNCScreen$ClientConnection java.lang.Thread java.util.Set
StackMap stack: java.lang.Throwable
71: aload 6
monitorexit
72: athrow
73: .line 194
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter.this$0:Lcom/sun/glass/ui/monocle/VNCScreen;
aload 2 /* client */
invokevirtual com.sun.glass.ui.monocle.VNCScreen.sendBuffer:(Ljava/nio/channels/WritableByteChannel;)V
end local 5 // java.lang.Thread t
end local 4 // com.sun.glass.ui.monocle.VNCScreen$ClientConnection cc
end local 3 // java.lang.String name
end local 2 // java.nio.channels.SocketChannel client
74: .line 195
goto 2
StackMap locals: com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter java.nio.ByteBuffer
StackMap stack: java.io.IOException
75: astore 2 /* e */
start local 2 // java.io.IOException e
76: .line 196
aload 2 /* e */
invokevirtual java.io.IOException.printStackTrace:()V
end local 2 // java.io.IOException e
77: .line 127
goto 2
end local 1 // java.nio.ByteBuffer buffer
end local 0 // com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter this
LocalVariableTable:
Start End Slot Name Signature
0 78 0 this Lcom/sun/glass/ui/monocle/VNCScreen$ConnectionAccepter;
1 78 1 buffer Ljava/nio/ByteBuffer;
3 74 2 client Ljava/nio/channels/SocketChannel;
55 74 3 name Ljava/lang/String;
60 74 4 cc Lcom/sun/glass/ui/monocle/VNCScreen$ClientConnection;
62 74 5 t Ljava/lang/Thread;
76 77 2 e Ljava/io/IOException;
Exception table:
from to target type
68 70 71 any
71 72 71 any
2 74 75 Class java.io.IOException
}
SourceFile: "VNCScreen.java"
NestHost: com.sun.glass.ui.monocle.VNCScreen
InnerClasses:
private ClientConnection = com.sun.glass.ui.monocle.VNCScreen$ClientConnection of com.sun.glass.ui.monocle.VNCScreen
private ConnectionAccepter = com.sun.glass.ui.monocle.VNCScreen$ConnectionAccepter of com.sun.glass.ui.monocle.VNCScreen