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 193
aload 0 /* this */
aload 1
putfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
1: .line 194
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 195
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=11, args_size=2
start local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
start local 1 // java.nio.ByteBuffer bb
0: .line 200
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 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.isBlocking:()Z
ifne 3
2: .line 202
new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
3: .line 204
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 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 1 /* bb */
invokevirtual sun.nio.ch.SocketChannelImpl.read:(Ljava/nio/ByteBuffer;)I
aload 2
monitorexit
5: ireturn
6: .line 207
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 210
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 */
start local 3 // int n
8: ifeq 15
9: .line 211
iload 3 /* n */
istore 10
10: .line 228
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
11: .line 229
goto 13
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int top top top top top top int
StackMap stack: java.nio.channels.ClosedChannelException
12: pop
13: .line 211
StackMap locals:
StackMap stack:
aload 2
monitorexit
14: iload 10
ireturn
15: .line 212
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int
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 4 /* to */
start local 4 // long to
16: .line 214
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 18
17: .line 215
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
18: .line 216
StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 6 /* st */
start local 6 // long st
19: .line 217
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 4 /* to */
invokevirtual sun.nio.ch.SocketChannelImpl.poll:(IJ)I
istore 8 /* result */
start local 8 // int result
20: .line 218
iload 8 /* result */
ifle 28
21: .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;
aload 1 /* bb */
invokevirtual sun.nio.ch.SocketChannelImpl.read:(Ljava/nio/ByteBuffer;)I
dup
istore 3 /* n */
ifeq 28
22: .line 220
iload 3 /* n */
istore 10
23: .line 228
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
24: .line 229
goto 26
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int long long int top int
StackMap stack: java.nio.channels.ClosedChannelException
25: pop
26: .line 220
StackMap locals:
StackMap stack:
aload 2
monitorexit
27: iload 10
ireturn
28: .line 222
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int long long int
StackMap stack:
lload 4 /* to */
invokestatic java.lang.System.currentTimeMillis:()J
lload 6 /* st */
lsub
lsub
lstore 4 /* to */
29: .line 223
lload 4 /* to */
lconst_0
lcmp
ifgt 16
30: .line 224
new java.net.SocketTimeoutException
dup
invokespecial java.net.SocketTimeoutException.<init>:()V
athrow
end local 8 // int result
end local 6 // long st
end local 4 // long to
end local 3 // int n
31: .line 226
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
astore 9
32: .line 228
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
33: .line 229
goto 35
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object top top top top top top java.lang.Throwable
StackMap stack: java.nio.channels.ClosedChannelException
34: pop
35: .line 230
StackMap locals:
StackMap stack:
aload 9
athrow
36: .line 200
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
37: athrow
end local 1 // java.nio.ByteBuffer bb
end local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lsun/nio/ch/SocketAdaptor$SocketInputStream;
0 38 1 bb Ljava/nio/ByteBuffer;
8 31 3 n I
16 31 4 to J
19 31 6 st J
20 31 8 result I
Exception table:
from to target type
10 11 12 Class java.nio.channels.ClosedChannelException
23 24 25 Class java.nio.channels.ClosedChannelException
7 10 31 any
15 23 31 any
28 31 31 any
32 33 34 Class java.nio.channels.ClosedChannelException
1 5 36 any
6 14 36 any
15 27 36 any
28 37 36 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