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 181
aload 0 /* this */
aload 1
putfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
1: .line 182
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 183
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 188
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 189
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 190
new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
3: .line 191
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 192
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 193
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 197
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 14
9: .line 198
iload 3 /* n */
istore 10
10: .line 216
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 12
11: .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;
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
12: .line 198
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int top top top top top top int
StackMap stack:
aload 2
monitorexit
13: iload 10
ireturn
14: .line 200
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int
StackMap stack:
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.timeout:I
i2l
15: .line 201
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
16: .line 200
invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
17: .line 199
lstore 4 /* timeoutNanos */
start local 4 // long timeoutNanos
18: .line 203
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 20
19: .line 204
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
20: .line 205
StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 6 /* startTime */
start local 6 // long startTime
21: .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;
getstatic sun.nio.ch.Net.POLLIN:S
aload 0 /* this */
getfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
getfield sun.nio.ch.SocketAdaptor.timeout:I
i2l
invokevirtual sun.nio.ch.SocketChannelImpl.poll:(IJ)I
istore 8 /* result */
start local 8 // int result
22: .line 207
iload 8 /* result */
ifle 29
23: .line 208
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 29
24: .line 209
iload 3 /* n */
istore 10
25: .line 216
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 27
26: .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;
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
27: .line 209
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int long long int top int
StackMap stack:
aload 2
monitorexit
28: iload 10
ireturn
29: .line 211
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object int long long int
StackMap stack:
lload 4 /* timeoutNanos */
invokestatic java.lang.System.nanoTime:()J
lload 6 /* startTime */
lsub
lsub
lstore 4 /* timeoutNanos */
30: .line 212
lload 4 /* timeoutNanos */
lconst_0
lcmp
ifgt 18
31: .line 213
new java.net.SocketTimeoutException
dup
invokespecial java.net.SocketTimeoutException.<init>:()V
athrow
end local 8 // int result
end local 6 // long startTime
end local 4 // long timeoutNanos
end local 3 // int n
32: .line 215
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
astore 9
33: .line 216
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 35
34: .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;
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
35: .line 218
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object top top top top top top java.lang.Throwable
StackMap stack:
aload 9
athrow
36: .line 188
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 32 3 n I
18 32 4 timeoutNanos J
21 32 6 startTime J
22 32 8 result I
Exception table:
from to target type
7 10 32 any
14 25 32 any
29 32 32 any
1 5 36 any
6 13 36 any
14 28 36 any
29 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