class sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask<V, A> implements java.lang.Runnable, sun.nio.ch.Iocp$ResultHandler
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask
super_class: java.lang.Object
{
private final java.nio.ByteBuffer[] bufs;
descriptor: [Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int numBufs;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean scatteringRead;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.nio.ch.PendingFuture<V, A> result;
descriptor: Lsun/nio/ch/PendingFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lsun/nio/ch/PendingFuture<TV;TA;>;
private java.nio.ByteBuffer[] shadow;
descriptor: [Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
final sun.nio.ch.WindowsAsynchronousSocketChannelImpl this$0;
descriptor: Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.nio.ByteBuffer[], boolean, sun.nio.ch.PendingFuture<V, A>);
descriptor: (Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;[Ljava/nio/ByteBuffer;ZLsun/nio/ch/PendingFuture;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 0
aload 2
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.bufs:[Ljava/nio/ByteBuffer;
3: aload 0
aload 2
arraylength
bipush 16
if_icmple 4
bipush 16
goto 5
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask sun.nio.ch.WindowsAsynchronousSocketChannelImpl java.nio.ByteBuffer[] int sun.nio.ch.PendingFuture
StackMap stack: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask
4: aload 2
arraylength
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask sun.nio.ch.WindowsAsynchronousSocketChannelImpl java.nio.ByteBuffer[] int sun.nio.ch.PendingFuture
StackMap stack: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask int
5: putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.numBufs:I
6: aload 0
iload 3
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.scatteringRead:Z
7: aload 0
aload 4
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
8: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
0 9 2 bufs [Ljava/nio/ByteBuffer;
0 9 3 scatteringRead Z
0 9 4 result Lsun/nio/ch/PendingFuture<TV;TA;>;
Signature: ([Ljava/nio/ByteBuffer;ZLsun/nio/ch/PendingFuture<TV;TA;>;)V
MethodParameters:
Name Flags
this$0 final
bufs
scatteringRead
result
void prepareBuffers();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=11, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.numBufs:I
anewarray java.nio.ByteBuffer
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.shadow:[Ljava/nio/ByteBuffer;
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.readBufferArray:J
lstore 1
start local 1 2: iconst_0
istore 3
start local 3 3: goto 22
4: StackMap locals: long int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.bufs:[Ljava/nio/ByteBuffer;
iload 3
aaload
astore 4
start local 4 5: aload 4
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 6: aload 4
invokevirtual java.nio.ByteBuffer.limit:()I
istore 6
start local 6 7: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.$assertionsDisabled:Z
ifne 8
iload 5
iload 6
if_icmple 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: java.nio.ByteBuffer int int
StackMap stack:
iload 5
iload 6
if_icmpgt 9
iload 6
iload 5
isub
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 7
start local 7 11: aload 4
instanceof sun.nio.ch.DirectBuffer
ifne 16
12: iload 7
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 10
start local 10 13: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.shadow:[Ljava/nio/ByteBuffer;
iload 3
aload 10
aastore
14: aload 10
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
lstore 8
end local 10 start local 8 15: goto 18
end local 8 16: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.shadow:[Ljava/nio/ByteBuffer;
iload 3
aload 4
aastore
17: aload 4
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 5
i2l
ladd
lstore 8
start local 8 18: StackMap locals: long
StackMap stack:
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Lsun/misc/Unsafe;
lload 1
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.OFFSETOF_BUF:I
i2l
ladd
lload 8
invokevirtual sun.misc.Unsafe.putAddress:(JJ)V
19: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Lsun/misc/Unsafe;
lload 1
lconst_0
ladd
iload 7
invokevirtual sun.misc.Unsafe.putInt:(JI)V
20: lload 1
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.SIZEOF_WSABUF:I
i2l
ladd
lstore 1
end local 8 end local 7 end local 6 end local 5 end local 4 21: iinc 3 1
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask long int
StackMap stack:
22: iload 3
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.numBufs:I
if_icmplt 4
end local 3 23: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
2 24 1 address J
3 23 3 i I
5 21 4 dst Ljava/nio/ByteBuffer;
6 21 5 pos I
7 21 6 lim I
11 21 7 rem I
15 16 8 a J
18 21 8 a J
13 15 10 bb Ljava/nio/ByteBuffer;
void updateBuffers(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 20
2: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.shadow:[Ljava/nio/ByteBuffer;
iload 2
aaload
astore 3
start local 3 3: aload 3
invokevirtual java.nio.ByteBuffer.position:()I
istore 4
start local 4 4: aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 5
start local 5 5: iload 1
iload 5
if_icmplt 12
6: iload 1
iload 5
isub
istore 1
7: iload 4
iload 5
iadd
istore 6
start local 6 8: aload 3
iload 6
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
9: goto 19
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask int int java.nio.ByteBuffer int int int
StackMap stack: java.lang.IllegalArgumentException
10: pop
end local 6 11: goto 19
12: StackMap locals:
StackMap stack:
iload 1
ifle 21
13: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.$assertionsDisabled:Z
ifne 14
iload 4
iload 1
iadd
i2l
ldc 2147483647
lcmp
iflt 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
iload 4
iload 1
iadd
istore 6
start local 6 15: aload 3
iload 6
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
16: goto 21
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask int int java.nio.ByteBuffer int int int
StackMap stack: java.lang.IllegalArgumentException
17: pop
end local 6 18: goto 21
end local 5 end local 4 end local 3 19: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask int int
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
20: iload 2
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.numBufs:I
if_icmplt 2
end local 2 21: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 22: goto 29
23: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.bufs:[Ljava/nio/ByteBuffer;
iload 2
aaload
instanceof sun.nio.ch.DirectBuffer
ifne 28
24: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.shadow:[Ljava/nio/ByteBuffer;
iload 2
aaload
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
25: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.bufs:[Ljava/nio/ByteBuffer;
iload 2
aaload
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.shadow:[Ljava/nio/ByteBuffer;
iload 2
aaload
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
26: goto 28
StackMap locals:
StackMap stack: java.nio.BufferOverflowException
27: pop
28: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
29: iload 2
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.numBufs:I
if_icmplt 23
end local 2 30: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
0 31 1 bytesRead I
1 21 2 i I
3 19 3 nextBuffer Ljava/nio/ByteBuffer;
4 19 4 pos I
5 19 5 len I
8 11 6 newPosition I
15 18 6 newPosition I
22 30 2 i I
Exception table:
from to target type
8 9 10 Class java.lang.IllegalArgumentException
15 16 17 Class java.lang.IllegalArgumentException
25 26 27 Class java.nio.BufferOverflowException
MethodParameters:
Name Flags
bytesRead
void releaseBuffers();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.bufs:[Ljava/nio/ByteBuffer;
iload 1
aaload
instanceof sun.nio.ch.DirectBuffer
ifne 4
3: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.shadow:[Ljava/nio/ByteBuffer;
iload 1
aaload
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
4: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.numBufs:I
if_icmplt 2
end local 1 6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
1 6 1 i I
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.begin:()V
4: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.prepareBuffers:()V
5: iconst_1
istore 3
6: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokevirtual sun.nio.ch.PendingIoCache.add:(Lsun/nio/ch/PendingFuture;)J
lstore 1
7: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.handle:J
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.numBufs:I
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.readBufferArray:J
lload 1
invokestatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.read0:(JIJJ)I
istore 5
start local 5 8: iload 5
bipush -2
if_icmpne 17
9: iconst_1
istore 4
10: iload 4
ifne 15
11: lload 1
lconst_0
lcmp
ifeq 13
12: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
lload 1
invokevirtual sun.nio.ch.PendingIoCache.remove:(J)Lsun/nio/ch/PendingFuture;
pop
13: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask long int int int
StackMap stack:
iload 3
ifeq 15
14: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.releaseBuffers:()V
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.end:()V
16: return
17: StackMap locals:
StackMap stack:
iload 5
iconst_m1
if_icmpne 24
18: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableReading:()V
19: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.scatteringRead:Z
ifeq 22
20: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
ldc -1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;)V
21: goto 46
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
iconst_m1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;)V
23: goto 46
24: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
ldc "Read completed immediately"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 5 25: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask long int int
StackMap stack: java.lang.Throwable
astore 5
start local 5 26: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableReading:()V
27: aload 5
instanceof java.nio.channels.ClosedChannelException
ifeq 29
28: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
astore 5
29: StackMap locals: java.lang.Throwable
StackMap stack:
aload 5
instanceof java.io.IOException
ifne 31
30: new java.io.IOException
dup
aload 5
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
astore 5
31: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
aload 5
invokevirtual sun.nio.ch.PendingFuture.setFailure:(Ljava/lang/Throwable;)V
end local 5 32: iload 4
ifne 37
33: lload 1
lconst_0
lcmp
ifeq 35
34: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
lload 1
invokevirtual sun.nio.ch.PendingIoCache.remove:(J)Lsun/nio/ch/PendingFuture;
pop
35: StackMap locals:
StackMap stack:
iload 3
ifeq 37
36: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.releaseBuffers:()V
37: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.end:()V
goto 52
38: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
39: iload 4
ifne 44
40: lload 1
lconst_0
lcmp
ifeq 42
41: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
lload 1
invokevirtual sun.nio.ch.PendingIoCache.remove:(J)Lsun/nio/ch/PendingFuture;
pop
42: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask long int int top java.lang.Throwable
StackMap stack:
iload 3
ifeq 44
43: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.releaseBuffers:()V
44: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.end:()V
45: aload 6
athrow
46: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask long int int
StackMap stack:
iload 4
ifne 51
47: lload 1
lconst_0
lcmp
ifeq 49
48: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
lload 1
invokevirtual sun.nio.ch.PendingIoCache.remove:(J)Lsun/nio/ch/PendingFuture;
pop
49: StackMap locals:
StackMap stack:
iload 3
ifeq 51
50: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.releaseBuffers:()V
51: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.end:()V
52: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokestatic sun.nio.ch.Invoker.invoke:(Lsun/nio/ch/PendingFuture;)V
53: return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
1 54 1 overlapped J
2 54 3 prepared Z
3 54 4 pending Z
8 25 5 n I
26 32 5 x Ljava/lang/Throwable;
Exception table:
from to target type
3 10 25 Class java.lang.Throwable
17 25 25 Class java.lang.Throwable
3 10 38 any
17 32 38 any
public void completed(int, boolean);
descriptor: (IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifne 3
1: iconst_m1
istore 1
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.updateBuffers:(I)V
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.releaseBuffers:()V
5: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
dup
astore 3
monitorenter
6: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokevirtual sun.nio.ch.PendingFuture.isDone:()Z
ifeq 9
7: aload 3
monitorexit
8: return
9: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableReading:()V
10: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.scatteringRead:Z
ifeq 13
11: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
iload 1
i2l
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;)V
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aload 3
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 3
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
iload 2
ifeq 21
19: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokestatic sun.nio.ch.Invoker.invokeUnchecked:(Lsun/nio/ch/PendingFuture;)V
20: goto 22
21: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokestatic sun.nio.ch.Invoker.invoke:(Lsun/nio/ch/PendingFuture;)V
22: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
0 23 1 bytesTransferred I
0 23 2 canInvokeDirect Z
Exception table:
from to target type
6 8 16 any
9 15 16 any
16 17 16 any
MethodParameters:
Name Flags
bytesTransferred
canInvokeDirect
public void failed(int, java.io.IOException);
descriptor: (ILjava/io/IOException;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.releaseBuffers:()V
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.isOpen:()Z
ifne 3
2: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
astore 2
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
dup
astore 3
monitorenter
4: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokevirtual sun.nio.ch.PendingFuture.isDone:()Z
ifeq 7
5: aload 3
monitorexit
6: return
7: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableReading:()V
8: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
aload 2
invokevirtual sun.nio.ch.PendingFuture.setFailure:(Ljava/lang/Throwable;)V
9: aload 3
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokestatic sun.nio.ch.Invoker.invoke:(Lsun/nio/ch/PendingFuture;)V
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
0 15 1 error I
0 15 2 x Ljava/io/IOException;
Exception table:
from to target type
4 6 11 any
7 10 11 any
11 12 11 any
MethodParameters:
Name Flags
error
x
void timeout();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokevirtual sun.nio.ch.PendingFuture.isDone:()Z
ifeq 4
2: aload 1
monitorexit
3: return
4: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
iconst_1
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableReading:(Z)V
5: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
new java.nio.channels.InterruptedByTimeoutException
dup
invokespecial java.nio.channels.InterruptedByTimeoutException.<init>:()V
invokevirtual sun.nio.ch.PendingFuture.setFailure:(Ljava/lang/Throwable;)V
6: aload 1
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.result:Lsun/nio/ch/PendingFuture;
invokestatic sun.nio.ch.Invoker.invoke:(Lsun/nio/ch/PendingFuture;)V
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$ReadTask<TV;TA;>;
Exception table:
from to target type
1 3 8 any
4 7 8 any
8 9 8 any
}
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>Ljava/lang/Object;Ljava/lang/Runnable;Lsun/nio/ch/Iocp$ResultHandler;
SourceFile: "WindowsAsynchronousSocketChannelImpl.java"
NestHost: sun.nio.ch.WindowsAsynchronousSocketChannelImpl
InnerClasses:
abstract ResultHandler = sun.nio.ch.Iocp$ResultHandler of sun.nio.ch.Iocp
private ReadTask = sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask of sun.nio.ch.WindowsAsynchronousSocketChannelImpl