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 194
aload 0 /* this */
aload 1
putfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
1: .line 195
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 196
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=12, args_size=2
start local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
start local 1 // java.nio.ByteBuffer bb
0: .line 201
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 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;
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 3
2: .line 203
new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
3: .line 205
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 206
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 208
StackMap locals:
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;
iconst_0
invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
7: .line 209
iconst_0
istore 3 /* n */
start local 3 // int n
8: .line 210
invokestatic sun.misc.IoTrace.socketReadBegin:()Ljava/lang/Object;
astore 4 /* traceContext */
start local 4 // java.lang.Object traceContext
9: .line 212
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 3 /* n */
ifeq 21
10: .line 213
iload 3 /* n */
istore 11
11: .line 229
aload 4 /* traceContext */
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
invokevirtual sun.nio.ch.SocketAdaptor.getInetAddress:()Ljava/net/InetAddress;
12: .line 230
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
invokevirtual sun.nio.ch.SocketAdaptor.getPort:()I
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.timeout:I
iload 3 /* n */
ifle 13
iload 3 /* n */
goto 14
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int java.lang.Object top top top top top top int
StackMap stack: java.lang.Object java.net.InetAddress int int
13: iconst_0
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int java.lang.Object top top top top top top int
StackMap stack: java.lang.Object java.net.InetAddress int int int
14: i2l
15: .line 229
invokestatic sun.misc.IoTrace.socketReadEnd:(Ljava/lang/Object;Ljava/net/InetAddress;IIJ)V
16: .line 232
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
17: .line 233
goto 19
StackMap locals:
StackMap stack: java.nio.channels.ClosedChannelException
18: pop
19: .line 213
StackMap locals:
StackMap stack:
aload 2
monitorexit
20: iload 11
ireturn
21: .line 214
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int 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
i2l
lstore 5 /* to */
start local 5 // long to
22: .line 216
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 24
23: .line 217
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
24: .line 218
StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 7 /* st */
start local 7 // long st
25: .line 219
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;
getstatic sun.nio.ch.Net.POLLIN:S
lload 5 /* to */
invokevirtual sun.nio.ch.SocketChannelImpl.poll:(IJ)I
istore 9 /* result */
start local 9 // int result
26: .line 220
iload 9 /* result */
ifle 39
27: .line 221
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 3 /* n */
ifeq 39
28: .line 222
iload 3 /* n */
istore 11
29: .line 229
aload 4 /* traceContext */
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
invokevirtual sun.nio.ch.SocketAdaptor.getInetAddress:()Ljava/net/InetAddress;
30: .line 230
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
invokevirtual sun.nio.ch.SocketAdaptor.getPort:()I
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.timeout:I
iload 3 /* n */
ifle 31
iload 3 /* n */
goto 32
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int java.lang.Object long long int top int
StackMap stack: java.lang.Object java.net.InetAddress int int
31: iconst_0
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int java.lang.Object long long int top int
StackMap stack: java.lang.Object java.net.InetAddress int int int
32: i2l
33: .line 229
invokestatic sun.misc.IoTrace.socketReadEnd:(Ljava/lang/Object;Ljava/net/InetAddress;IIJ)V
34: .line 232
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
35: .line 233
goto 37
StackMap locals:
StackMap stack: java.nio.channels.ClosedChannelException
36: pop
37: .line 222
StackMap locals:
StackMap stack:
aload 2
monitorexit
38: iload 11
ireturn
39: .line 224
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int java.lang.Object long long int
StackMap stack:
lload 5 /* to */
invokestatic java.lang.System.currentTimeMillis:()J
lload 7 /* st */
lsub
lsub
lstore 5 /* to */
40: .line 225
lload 5 /* to */
lconst_0
lcmp
ifgt 22
41: .line 226
new java.net.SocketTimeoutException
dup
invokespecial java.net.SocketTimeoutException.<init>:()V
athrow
end local 9 // int result
end local 7 // long st
end local 5 // long to
42: .line 228
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int java.lang.Object
StackMap stack: java.lang.Throwable
astore 10
43: .line 229
aload 4 /* traceContext */
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
invokevirtual sun.nio.ch.SocketAdaptor.getInetAddress:()Ljava/net/InetAddress;
44: .line 230
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
invokevirtual sun.nio.ch.SocketAdaptor.getPort:()I
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.timeout:I
iload 3 /* n */
ifle 45
iload 3 /* n */
goto 46
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int java.lang.Object top top top top top java.lang.Throwable
StackMap stack: java.lang.Object java.net.InetAddress int int
45: iconst_0
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int java.lang.Object top top top top top java.lang.Throwable
StackMap stack: java.lang.Object java.net.InetAddress int int int
46: i2l
47: .line 229
invokestatic sun.misc.IoTrace.socketReadEnd:(Ljava/lang/Object;Ljava/net/InetAddress;IIJ)V
48: .line 232
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
49: .line 233
goto 51
StackMap locals:
StackMap stack: java.nio.channels.ClosedChannelException
50: pop
51: .line 234
StackMap locals:
StackMap stack:
aload 10
athrow
end local 4 // java.lang.Object traceContext
end local 3 // int n
52: .line 201
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
53: athrow
end local 1 // java.nio.ByteBuffer bb
end local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lsun/nio/ch/SocketAdaptor$SocketInputStream;
0 54 1 bb Ljava/nio/ByteBuffer;
8 52 3 n I
9 52 4 traceContext Ljava/lang/Object;
22 42 5 to J
25 42 7 st J
26 42 9 result I
Exception table:
from to target type
16 17 18 Class java.nio.channels.ClosedChannelException
34 35 36 Class java.nio.channels.ClosedChannelException
9 11 42 any
21 29 42 any
39 42 42 any
48 49 50 Class java.nio.channels.ClosedChannelException
1 5 52 any
6 20 52 any
21 38 52 any
39 53 52 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