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 189
aload 0 /* this */
aload 1
putfield sun.nio.ch.SocketAdaptor$SocketInputStream.this$0:Lsun/nio/ch/SocketAdaptor;
1: .line 190
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 191
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=9, args_size=2
start local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
start local 1 // java.nio.ByteBuffer bb
0: .line 196
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 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;
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 3
2: .line 198
new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
3: .line 201
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
i2l
lstore 3 /* to */
start local 3 // long to
4: .line 202
lload 3 /* to */
lconst_0
lcmp
ifne 7
5: .line 203
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
6: ireturn
7: .line 206
StackMap locals: long
StackMap stack:
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 3 /* to */
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
lstore 5 /* timeoutNanos */
start local 5 // long timeoutNanos
8: .line 208
StackMap locals: long
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 7 /* startTime */
start local 7 // long startTime
9: .line 209
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;
lload 3 /* to */
invokevirtual sun.nio.ch.SocketChannelImpl.pollRead:(J)Z
ifeq 12
10: .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
aload 2
monitorexit
11: ireturn
12: .line 212
StackMap locals: long
StackMap stack:
lload 5 /* timeoutNanos */
invokestatic java.lang.System.nanoTime:()J
lload 7 /* startTime */
lsub
lsub
lstore 5 /* timeoutNanos */
13: .line 213
lload 5 /* timeoutNanos */
lconst_0
lcmp
ifgt 15
14: .line 214
new java.net.SocketTimeoutException
dup
invokespecial java.net.SocketTimeoutException.<init>:()V
athrow
15: .line 215
StackMap locals:
StackMap stack:
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
lload 5 /* timeoutNanos */
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
lstore 3 /* to */
end local 7 // long startTime
16: .line 207
goto 8
end local 5 // long timeoutNanos
end local 3 // long to
17: .line 196
StackMap locals: sun.nio.ch.SocketAdaptor$SocketInputStream java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
18: athrow
end local 1 // java.nio.ByteBuffer bb
end local 0 // sun.nio.ch.SocketAdaptor$SocketInputStream this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/nio/ch/SocketAdaptor$SocketInputStream;
0 19 1 bb Ljava/nio/ByteBuffer;
4 17 3 to J
8 17 5 timeoutNanos J
9 16 7 startTime J
Exception table:
from to target type
1 6 17 any
7 11 17 any
12 18 17 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