class sun.nio.ch.SocketAdaptor$SocketInputStream extends sun.nio.ch.ChannelInputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.SocketAdaptor$SocketInputStream
super_class: sun.nio.ch.ChannelInputStream
{
final sun.nio.ch.SocketAdaptor this$0;
descriptor: Lsun/nio/ch/SocketAdaptor;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(sun.nio.ch.SocketAdaptor);
descriptor: (Lsun/nio/ch/SocketAdaptor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
0: .line 183
aload 0 /* this */
aload 1
putfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
1: .line 184
aload 0 /* this */
aload 1
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
invokespecial sun.nio.ch.ChannelInputStream.<init>:(Ljava/nio/channels/ReadableByteChannel;)V
2: .line 185
return
end local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/SocketAdaptor$SocketInputStream;
MethodParameters:
Name Flags
this$0 final
protected int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=13, args_size=2
start local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
start local 1 // java.nio.ByteBuffer bb
0: .line 190
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
invokevirtual sun.nio.ch.SocketChannelImpl.blockingLock:()Ljava/lang/Object;
dup
astore 2
monitorenter
1: .line 191
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 3
2: .line 192
new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
3: .line 193
StackMap locals: java.lang.Object
StackMap stack:
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.timeout:I
ifne 6
4: .line 194
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
aload 1 /* bb */
invokevirtual sun.nio.ch.SocketChannelImpl.read:(Ljava/nio/ByteBuffer;)I
aload 2
monitorexit
5: ireturn
6: .line 197
StackMap locals:
StackMap stack:
aconst_null
astore 3 /* sk */
start local 3 // java.nio.channels.SelectionKey sk
7: .line 198
aconst_null
astore 4 /* sel */
start local 4 // java.nio.channels.Selector sel
8: .line 199
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
iconst_0
invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
9: .line 202
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
aload 1 /* bb */
invokevirtual sun.nio.ch.SocketChannelImpl.read:(Ljava/nio/ByteBuffer;)I
dup
istore 5 /* n */
start local 5 // int n
10: ifeq 20
11: .line 203
iload 5 /* n */
istore 12
12: .line 222
aload 3 /* sk */
ifnull 14
13: .line 223
aload 3 /* sk */
invokevirtual java.nio.channels.SelectionKey.cancel:()V
14: .line 224
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object java.nio.channels.SelectionKey java.nio.channels.Selector int top top top top top top int
StackMap stack:
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 16
15: .line 225
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
16: .line 226
StackMap locals:
StackMap stack:
aload 4 /* sel */
ifnull 18
17: .line 227
aload 4 /* sel */
invokestatic sun.nio.ch.Util.releaseTemporarySelector:(Ljava/nio/channels/Selector;)V
18: .line 203
StackMap locals:
StackMap stack:
aload 2
monitorexit
19: iload 12
ireturn
20: .line 204
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object java.nio.channels.SelectionKey java.nio.channels.Selector int
StackMap stack:
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
invokestatic sun.nio.ch.Util.getTemporarySelector:(Ljava/nio/channels/SelectableChannel;)Ljava/nio/channels/Selector;
astore 4 /* sel */
21: .line 205
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
aload 4 /* sel */
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.register:(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey;
astore 3 /* sk */
22: .line 206
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.timeout:I
i2l
lstore 6 /* to */
start local 6 // long to
23: .line 208
StackMap locals: long
StackMap stack:
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 25
24: .line 209
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
25: .line 210
StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 8 /* st */
start local 8 // long st
26: .line 211
aload 4 /* sel */
lload 6 /* to */
invokevirtual java.nio.channels.Selector.select:(J)I
istore 10 /* ns */
start local 10 // int ns
27: .line 212
iload 10 /* ns */
ifle 38
aload 3 /* sk */
invokevirtual java.nio.channels.SelectionKey.isReadable:()Z
ifeq 38
28: .line 213
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
aload 1 /* bb */
invokevirtual sun.nio.ch.SocketChannelImpl.read:(Ljava/nio/ByteBuffer;)I
dup
istore 5 /* n */
ifeq 38
29: .line 214
iload 5 /* n */
istore 12
30: .line 222
aload 3 /* sk */
ifnull 32
31: .line 223
aload 3 /* sk */
invokevirtual java.nio.channels.SelectionKey.cancel:()V
32: .line 224
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object java.nio.channels.SelectionKey java.nio.channels.Selector int long long int top int
StackMap stack:
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 34
33: .line 225
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
34: .line 226
StackMap locals:
StackMap stack:
aload 4 /* sel */
ifnull 36
35: .line 227
aload 4 /* sel */
invokestatic sun.nio.ch.Util.releaseTemporarySelector:(Ljava/nio/channels/Selector;)V
36: .line 214
StackMap locals:
StackMap stack:
aload 2
monitorexit
37: iload 12
ireturn
38: .line 216
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object java.nio.channels.SelectionKey java.nio.channels.Selector int long long int
StackMap stack:
aload 4 /* sel */
invokevirtual java.nio.channels.Selector.selectedKeys:()Ljava/util/Set;
aload 3 /* sk */
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
39: .line 217
lload 6 /* to */
invokestatic java.lang.System.currentTimeMillis:()J
lload 8 /* st */
lsub
lsub
lstore 6 /* to */
40: .line 218
lload 6 /* to */
lconst_0
lcmp
ifgt 23
41: .line 219
new java.net.SocketTimeoutException
dup
invokespecial java.net.SocketTimeoutException.<init>:()V
athrow
end local 10 // int ns
end local 8 // long st
end local 6 // long to
end local 5 // int n
42: .line 221
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object java.nio.channels.SelectionKey java.nio.channels.Selector
StackMap stack: java.lang.Throwable
astore 11
43: .line 222
aload 3 /* sk */
ifnull 45
44: .line 223
aload 3 /* sk */
invokevirtual java.nio.channels.SelectionKey.cancel:()V
45: .line 224
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object java.nio.channels.SelectionKey java.nio.channels.Selector top top top top top top java.lang.Throwable
StackMap stack:
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 47
46: .line 225
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
47: .line 226
StackMap locals:
StackMap stack:
aload 4 /* sel */
ifnull 49
48: .line 227
aload 4 /* sel */
invokestatic sun.nio.ch.Util.releaseTemporarySelector:(Ljava/nio/channels/Selector;)V
49: .line 228
StackMap locals:
StackMap stack:
aload 11
athrow
end local 4 // java.nio.channels.Selector sel
end local 3 // java.nio.channels.SelectionKey sk
50: .line 190
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
51: athrow
end local 1 // java.nio.ByteBuffer bb
end local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lsun/nio/ch/SocketAdaptor$SocketInputStream;
0 52 1 bb Ljava/nio/ByteBuffer;
7 50 3 sk Ljava/nio/channels/SelectionKey;
8 50 4 sel Ljava/nio/channels/Selector;
10 42 5 n I
23 42 6 to J
26 42 8 st J
27 42 10 ns I
Exception table:
from to target type
9 12 42 any
20 30 42 any
38 42 42 any
1 5 50 any
6 19 50 any
20 37 50 any
38 51 50 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bb
}
SourceFile: "SocketAdaptor.java"
NestHost: sun.nio.ch.SocketAdaptor
InnerClasses:
private SocketInputStream = sun.nio.ch.SocketAdaptor$SocketInputStream of sun.nio.ch.SocketAdaptor