class sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask<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$WriteTask
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 gatheringWrite;
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$WriteTask.$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$WriteTask.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$WriteTask.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$WriteTask sun.nio.ch.WindowsAsynchronousSocketChannelImpl java.nio.ByteBuffer[] int sun.nio.ch.PendingFuture
StackMap stack: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask
4: aload 2
arraylength
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask sun.nio.ch.WindowsAsynchronousSocketChannelImpl java.nio.ByteBuffer[] int sun.nio.ch.PendingFuture
StackMap stack: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask int
5: putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.numBufs:I
6: aload 0
iload 3
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.gatheringWrite:Z
7: aload 0
aload 4
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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$WriteTask<TV;TA;>;
0 9 2 bufs [Ljava/nio/ByteBuffer;
0 9 3 gatheringWrite 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
gatheringWrite
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$WriteTask.numBufs:I
anewarray java.nio.ByteBuffer
putfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.shadow:[Ljava/nio/ByteBuffer;
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.writeBufferArray:J
lstore 1
start local 1 2: iconst_0
istore 3
start local 3 3: goto 25
4: StackMap locals: long int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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$WriteTask.$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 19
12: iload 7
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 10
start local 10 13: aload 10
aload 4
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
14: aload 10
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
15: aload 4
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
16: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.shadow:[Ljava/nio/ByteBuffer;
iload 3
aload 10
aastore
17: aload 10
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
lstore 8
end local 10 start local 8 18: goto 21
end local 8 19: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.shadow:[Ljava/nio/ByteBuffer;
iload 3
aload 4
aastore
20: aload 4
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 5
i2l
ladd
lstore 8
start local 8 21: StackMap locals: long
StackMap stack:
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Ljdk/internal/misc/Unsafe;
lload 1
getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.OFFSETOF_BUF:I
i2l
ladd
lload 8
invokevirtual jdk.internal.misc.Unsafe.putAddress:(JJ)V
22: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.unsafe:Ljdk/internal/misc/Unsafe;
lload 1
lconst_0
ladd
iload 7
invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
23: 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 24: iinc 3 1
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask long int
StackMap stack:
25: iload 3
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.numBufs:I
if_icmplt 4
end local 3 26: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$WriteTask<TV;TA;>;
2 27 1 address J
3 26 3 i I
5 24 4 src Ljava/nio/ByteBuffer;
6 24 5 pos I
7 24 6 lim I
11 24 7 rem I
18 19 8 a J
21 24 8 a J
13 18 10 bb Ljava/nio/ByteBuffer;
void updateBuffers(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 23
2: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.bufs:[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.limit:()I
istore 5
start local 5 5: iload 4
iload 5
if_icmpgt 6
iload 5
iload 4
isub
goto 7
StackMap locals: java.nio.ByteBuffer int int
StackMap stack:
6: iload 5
StackMap locals:
StackMap stack: int
7: istore 6
start local 6 8: iload 1
iload 6
if_icmplt 15
9: iload 1
iload 6
isub
istore 1
10: iload 4
iload 6
iadd
istore 7
start local 7 11: aload 3
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
12: goto 22
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask int int java.nio.ByteBuffer int int int int
StackMap stack: java.lang.IllegalArgumentException
13: pop
end local 7 14: goto 22
15: StackMap locals:
StackMap stack:
iload 1
ifle 24
16: getstatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.$assertionsDisabled:Z
ifne 17
iload 4
iload 1
iadd
i2l
ldc 2147483647
lcmp
iflt 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
iload 4
iload 1
iadd
istore 7
start local 7 18: aload 3
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
19: goto 24
StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask int int java.nio.ByteBuffer int int int int
StackMap stack: java.lang.IllegalArgumentException
20: pop
end local 7 21: goto 24
end local 6 end local 5 end local 4 end local 3 22: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask int int
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
23: iload 2
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.numBufs:I
if_icmplt 2
end local 2 24: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$WriteTask<TV;TA;>;
0 25 1 bytesWritten I
1 24 2 i I
3 22 3 nextBuffer Ljava/nio/ByteBuffer;
4 22 4 pos I
5 22 5 lim I
8 22 6 len I
11 14 7 newPosition I
18 21 7 newPosition I
Exception table:
from to target type
11 12 13 Class java.lang.IllegalArgumentException
18 19 20 Class java.lang.IllegalArgumentException
MethodParameters:
Name Flags
bytesWritten
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$WriteTask.bufs:[Ljava/nio/ByteBuffer;
iload 1
aaload
instanceof sun.nio.ch.DirectBuffer
ifne 4
3: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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$WriteTask.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$WriteTask<TV;TA;>;
1 6 1 i I
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, 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: iconst_0
istore 5
start local 5 4: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.begin:()V
5: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.prepareBuffers:()V
6: iconst_1
istore 3
7: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.result:Lsun/nio/ch/PendingFuture;
invokevirtual sun.nio.ch.PendingIoCache.add:(Lsun/nio/ch/PendingFuture;)J
lstore 1
8: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.handle:J
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.numBufs:I
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl.writeBufferArray:J
lload 1
invokestatic sun.nio.ch.WindowsAsynchronousSocketChannelImpl.write0:(JIJJ)I
istore 6
start local 6 9: iload 6
bipush -2
if_icmpne 18
10: iconst_1
istore 4
11: iload 4
ifne 16
12: lload 1
lconst_0
lcmp
ifeq 14
13: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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
14: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask long int int int int
StackMap stack:
iload 3
ifeq 16
15: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.releaseBuffers:()V
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.end:()V
17: return
18: StackMap locals:
StackMap stack:
iload 6
iconst_m1
if_icmpne 21
19: iconst_1
istore 5
20: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
21: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
ldc "Write completed immediately"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 6 22: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask long int int int
StackMap stack: java.lang.Throwable
astore 6
start local 6 23: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableWriting:()V
24: iload 5
ifne 26
aload 6
instanceof java.nio.channels.ClosedChannelException
ifeq 26
25: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
astore 6
26: StackMap locals: java.lang.Throwable
StackMap stack:
aload 6
instanceof java.io.IOException
ifne 28
27: new java.io.IOException
dup
aload 6
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
astore 6
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.result:Lsun/nio/ch/PendingFuture;
aload 6
invokevirtual sun.nio.ch.PendingFuture.setFailure:(Ljava/lang/Throwable;)V
end local 6 29: iload 4
ifne 34
30: lload 1
lconst_0
lcmp
ifeq 32
31: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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
32: StackMap locals:
StackMap stack:
iload 3
ifeq 34
33: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.releaseBuffers:()V
34: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.end:()V
goto 43
35: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
36: iload 4
ifne 41
37: lload 1
lconst_0
lcmp
ifeq 39
38: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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
39: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask long int int int top java.lang.Throwable
StackMap stack:
iload 3
ifeq 41
40: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.releaseBuffers:()V
41: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.end:()V
42: aload 7
athrow
43: StackMap locals: sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask long int int int
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.result:Lsun/nio/ch/PendingFuture;
invokestatic sun.nio.ch.Invoker.invoke:(Lsun/nio/ch/PendingFuture;)V
44: return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$WriteTask<TV;TA;>;
1 45 1 overlapped J
2 45 3 prepared Z
3 45 4 pending Z
4 45 5 shutdown Z
9 22 6 n I
23 29 6 x Ljava/lang/Throwable;
Exception table:
from to target type
4 11 22 Class java.lang.Throwable
18 22 22 Class java.lang.Throwable
4 11 35 any
18 29 35 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: aload 0
iload 1
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.updateBuffers:(I)V
1: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.releaseBuffers:()V
2: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.result:Lsun/nio/ch/PendingFuture;
dup
astore 3
monitorenter
3: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.result:Lsun/nio/ch/PendingFuture;
invokevirtual sun.nio.ch.PendingFuture.isDone:()Z
ifeq 6
4: aload 3
monitorexit
5: return
6: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableWriting:()V
7: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.gatheringWrite:Z
ifeq 10
8: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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
11: StackMap locals:
StackMap stack:
aload 3
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 3
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
iload 2
ifeq 18
16: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.result:Lsun/nio/ch/PendingFuture;
invokestatic sun.nio.ch.Invoker.invokeUnchecked:(Lsun/nio/ch/PendingFuture;)V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.result:Lsun/nio/ch/PendingFuture;
invokestatic sun.nio.ch.Invoker.invoke:(Lsun/nio/ch/PendingFuture;)V
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl$WriteTask<TV;TA;>;
0 20 1 bytesTransferred I
0 20 2 canInvokeDirect Z
Exception table:
from to target type
3 5 13 any
6 12 13 any
13 14 13 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$WriteTask.releaseBuffers:()V
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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$WriteTask.result:Lsun/nio/ch/PendingFuture;
dup
astore 3
monitorenter
4: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableWriting:()V
8: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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$WriteTask.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$WriteTask<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$WriteTask.result:Lsun/nio/ch/PendingFuture;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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$WriteTask.this$0:Lsun/nio/ch/WindowsAsynchronousSocketChannelImpl;
iconst_1
invokevirtual sun.nio.ch.WindowsAsynchronousSocketChannelImpl.enableWriting:(Z)V
5: aload 0
getfield sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.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$WriteTask.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$WriteTask<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 WriteTask = sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask of sun.nio.ch.WindowsAsynchronousSocketChannelImpl