public class io.undertow.io.AsyncSenderImpl implements io.undertow.io.Sender
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.io.AsyncSenderImpl
super_class: java.lang.Object
{
private org.xnio.channels.StreamSinkChannel channel;
descriptor: Lorg/xnio/channels/StreamSinkChannel;
flags: (0x0002) ACC_PRIVATE
private final io.undertow.server.HttpServerExchange exchange;
descriptor: Lio/undertow/server/HttpServerExchange;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.nio.ByteBuffer[] buffer;
descriptor: [Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private io.undertow.connector.PooledByteBuffer[] pooledBuffers;
descriptor: [Lio/undertow/connector/PooledByteBuffer;
flags: (0x0002) ACC_PRIVATE
private java.nio.channels.FileChannel fileChannel;
descriptor: Ljava/nio/channels/FileChannel;
flags: (0x0002) ACC_PRIVATE
private io.undertow.io.IoCallback callback;
descriptor: Lio/undertow/io/IoCallback;
flags: (0x0002) ACC_PRIVATE
private boolean inCallback;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.xnio.ChannelListener<org.xnio.channels.StreamSinkChannel> writeListener;
descriptor: Lorg/xnio/ChannelListener;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/xnio/ChannelListener<Lorg/xnio/channels/StreamSinkChannel;>;
private io.undertow.io.AsyncSenderImpl$TransferTask transferTask;
descriptor: Lio/undertow/io/AsyncSenderImpl$TransferTask;
flags: (0x0002) ACC_PRIVATE
public void <init>(io.undertow.server.HttpServerExchange);
descriptor: (Lio/undertow/server/HttpServerExchange;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
2: aload 0
aload 1
putfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/io/AsyncSenderImpl;
0 4 1 exchange Lio/undertow/server/HttpServerExchange;
MethodParameters:
Name Flags
exchange final
public void send(java.nio.ByteBuffer, io.undertow.io.IoCallback);
descriptor: (Ljava/nio/ByteBuffer;Lio/undertow/io/IoCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "callback"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.isOpen:()Z
ifne 5
3: aload 0
aload 2
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
4: return
5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.isResponseComplete:()Z
ifeq 7
6: aload 0
aload 2
new java.io.IOException
dup
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.responseComplete:()Ljava/lang/IllegalStateException;
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
ifnonnull 8
aload 0
getfield io.undertow.io.AsyncSenderImpl.fileChannel:Ljava/nio/channels/FileChannel;
ifnull 9
8: StackMap locals:
StackMap stack:
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.dataAlreadyQueued:()Ljava/lang/IllegalStateException;
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseContentLength:()J
lstore 3
start local 3 10: lload 3
lconst_0
lcmp
ifle 13
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lload 3
lcmp
ifle 13
11: aload 0
aload 2
getstatic io.undertow.UndertowLogger.ROOT_LOGGER:Lio/undertow/UndertowLogger;
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lload 3
invokeinterface io.undertow.UndertowLogger.dataLargerThanContentLength:(JJ)Ljava/io/IOException;
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
12: return
13: StackMap locals: long
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.channel:Lorg/xnio/channels/StreamSinkChannel;
astore 5
start local 5 14: aload 5
ifnonnull 21
15: aload 2
getstatic io.undertow.io.IoCallback.END_EXCHANGE:Lio/undertow/io/IoCallback;
if_acmpne 18
16: lload 3
ldc -1
lcmp
ifne 18
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseHeaders:()Lio/undertow/util/HeaderMap;
getstatic io.undertow.util.Headers.TRANSFER_ENCODING:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HeaderMap.contains:(Lio/undertow/util/HttpString;)Z
ifne 18
17: aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
invokevirtual io.undertow.server.HttpServerExchange.setResponseContentLength:(J)Lio/undertow/server/HttpServerExchange;
pop
18: StackMap locals: org.xnio.channels.StreamSinkChannel
StackMap stack:
aload 0
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseChannel:()Lorg/xnio/channels/StreamSinkChannel;
dup
astore 5
putfield io.undertow.io.AsyncSenderImpl.channel:Lorg/xnio/channels/StreamSinkChannel;
19: aload 5
ifnonnull 21
20: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.responseChannelAlreadyProvided:()Ljava/lang/IllegalStateException;
athrow
21: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield io.undertow.io.AsyncSenderImpl.callback:Lio/undertow/io/IoCallback;
22: aload 0
getfield io.undertow.io.AsyncSenderImpl.inCallback:Z
ifeq 25
23: aload 0
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 1
aastore
putfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
24: return
25: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 28
26: aload 2
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
aload 0
invokeinterface io.undertow.io.IoCallback.onComplete:(Lio/undertow/server/HttpServerExchange;Lio/undertow/io/Sender;)V
27: return
28: StackMap locals:
StackMap stack:
aload 5
aload 1
invokeinterface org.xnio.channels.StreamSinkChannel.write:(Ljava/nio/ByteBuffer;)I
istore 6
start local 6 29: iload 6
ifne 37
30: aload 0
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 1
aastore
putfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
31: aload 0
aload 2
putfield io.undertow.io.AsyncSenderImpl.callback:Lio/undertow/io/IoCallback;
32: aload 0
getfield io.undertow.io.AsyncSenderImpl.writeListener:Lorg/xnio/ChannelListener;
ifnonnull 34
33: aload 0
invokevirtual io.undertow.io.AsyncSenderImpl.initWriteListener:()V
34: StackMap locals: int
StackMap stack:
aload 5
invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
aload 0
getfield io.undertow.io.AsyncSenderImpl.writeListener:Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
35: aload 5
invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
36: return
end local 6 37: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 25
38: aload 0
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnComplete:()V
39: goto 42
StackMap locals:
StackMap stack: java.io.IOException
40: astore 6
start local 6 41: aload 0
aload 2
aload 6
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
end local 6 42: StackMap locals:
StackMap stack:
return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lio/undertow/io/AsyncSenderImpl;
0 43 1 buffer Ljava/nio/ByteBuffer;
0 43 2 callback Lio/undertow/io/IoCallback;
10 43 3 responseContentLength J
14 43 5 channel Lorg/xnio/channels/StreamSinkChannel;
29 37 6 res I
41 42 6 e Ljava/io/IOException;
Exception table:
from to target type
25 27 40 Class java.io.IOException
28 36 40 Class java.io.IOException
37 39 40 Class java.io.IOException
MethodParameters:
Name Flags
buffer final
callback final
public void send(java.nio.ByteBuffer[], io.undertow.io.IoCallback);
descriptor: ([Ljava/nio/ByteBuffer;Lio/undertow/io/IoCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "callback"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.isOpen:()Z
ifne 5
3: aload 0
aload 2
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
4: return
5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.isResponseComplete:()Z
ifeq 7
6: aload 0
aload 2
new java.io.IOException
dup
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.responseComplete:()Ljava/lang/IllegalStateException;
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
ifnull 9
8: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.dataAlreadyQueued:()Ljava/lang/IllegalStateException;
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield io.undertow.io.AsyncSenderImpl.callback:Lio/undertow/io/IoCallback;
10: aload 0
getfield io.undertow.io.AsyncSenderImpl.inCallback:Z
ifeq 13
11: aload 0
aload 1
putfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
12: return
13: StackMap locals:
StackMap stack:
aload 1
invokestatic org.xnio.Buffers.remaining:([Ljava/nio/Buffer;)J
lstore 3
start local 3 14: aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseContentLength:()J
lstore 5
start local 5 15: lload 5
lconst_0
lcmp
ifle 18
lload 3
lload 5
lcmp
ifle 18
16: aload 0
aload 2
getstatic io.undertow.UndertowLogger.ROOT_LOGGER:Lio/undertow/UndertowLogger;
lload 3
lload 5
invokeinterface io.undertow.UndertowLogger.dataLargerThanContentLength:(JJ)Ljava/io/IOException;
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
17: return
18: StackMap locals: long long
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.channel:Lorg/xnio/channels/StreamSinkChannel;
astore 7
start local 7 19: aload 7
ifnonnull 26
20: aload 2
getstatic io.undertow.io.IoCallback.END_EXCHANGE:Lio/undertow/io/IoCallback;
if_acmpne 23
21: lload 5
ldc -1
lcmp
ifne 23
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseHeaders:()Lio/undertow/util/HeaderMap;
getstatic io.undertow.util.Headers.TRANSFER_ENCODING:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HeaderMap.contains:(Lio/undertow/util/HttpString;)Z
ifne 23
22: aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
lload 3
invokevirtual io.undertow.server.HttpServerExchange.setResponseContentLength:(J)Lio/undertow/server/HttpServerExchange;
pop
23: StackMap locals: org.xnio.channels.StreamSinkChannel
StackMap stack:
aload 0
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseChannel:()Lorg/xnio/channels/StreamSinkChannel;
dup
astore 7
putfield io.undertow.io.AsyncSenderImpl.channel:Lorg/xnio/channels/StreamSinkChannel;
24: aload 7
ifnonnull 26
25: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.responseChannelAlreadyProvided:()Ljava/lang/IllegalStateException;
athrow
26: StackMap locals:
StackMap stack:
lload 3
lstore 8
start local 8 27: lconst_0
lstore 10
start local 10 28: StackMap locals: long long
StackMap stack:
aload 7
aload 1
invokeinterface org.xnio.channels.StreamSinkChannel.write:([Ljava/nio/ByteBuffer;)J
lstore 12
start local 12 29: lload 10
lload 12
ladd
lstore 10
30: lload 12
lconst_0
lcmp
ifne 38
31: aload 0
aload 1
putfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
32: aload 0
aload 2
putfield io.undertow.io.AsyncSenderImpl.callback:Lio/undertow/io/IoCallback;
33: aload 0
getfield io.undertow.io.AsyncSenderImpl.writeListener:Lorg/xnio/ChannelListener;
ifnonnull 35
34: aload 0
invokevirtual io.undertow.io.AsyncSenderImpl.initWriteListener:()V
35: StackMap locals: long
StackMap stack:
aload 7
invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
aload 0
getfield io.undertow.io.AsyncSenderImpl.writeListener:Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
36: aload 7
invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
37: return
end local 12 38: StackMap locals:
StackMap stack:
lload 10
lload 8
39: lcmp
iflt 28
40: aload 0
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnComplete:()V
41: goto 44
StackMap locals:
StackMap stack: java.io.IOException
42: astore 12
start local 12 43: aload 0
aload 2
aload 12
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
end local 12 44: StackMap locals:
StackMap stack:
return
end local 10 end local 8 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lio/undertow/io/AsyncSenderImpl;
0 45 1 buffer [Ljava/nio/ByteBuffer;
0 45 2 callback Lio/undertow/io/IoCallback;
14 45 3 totalToWrite J
15 45 5 responseContentLength J
19 45 7 channel Lorg/xnio/channels/StreamSinkChannel;
27 45 8 total J
28 45 10 written J
29 38 12 res J
43 44 12 e Ljava/io/IOException;
Exception table:
from to target type
28 37 42 Class java.io.IOException
38 41 42 Class java.io.IOException
MethodParameters:
Name Flags
buffer final
callback final
public void transferFrom(java.nio.channels.FileChannel, io.undertow.io.IoCallback);
descriptor: (Ljava/nio/channels/FileChannel;Lio/undertow/io/IoCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
ldc "callback"
invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.isOpen:()Z
ifne 5
3: aload 0
aload 2
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
4: return
5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.isResponseComplete:()Z
ifeq 7
6: aload 0
aload 2
new java.io.IOException
dup
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.responseComplete:()Ljava/lang/IllegalStateException;
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.fileChannel:Ljava/nio/channels/FileChannel;
ifnonnull 8
aload 0
getfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
ifnull 9
8: StackMap locals:
StackMap stack:
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.dataAlreadyQueued:()Ljava/lang/IllegalStateException;
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield io.undertow.io.AsyncSenderImpl.callback:Lio/undertow/io/IoCallback;
10: aload 0
aload 1
putfield io.undertow.io.AsyncSenderImpl.fileChannel:Ljava/nio/channels/FileChannel;
11: aload 0
getfield io.undertow.io.AsyncSenderImpl.inCallback:Z
ifeq 13
12: return
13: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.transferTask:Lio/undertow/io/AsyncSenderImpl$TransferTask;
ifnonnull 15
14: aload 0
new io.undertow.io.AsyncSenderImpl$TransferTask
dup
aload 0
invokespecial io.undertow.io.AsyncSenderImpl$TransferTask.<init>:(Lio/undertow/io/AsyncSenderImpl;)V
putfield io.undertow.io.AsyncSenderImpl.transferTask:Lio/undertow/io/AsyncSenderImpl$TransferTask;
15: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.isInIoThread:()Z
ifeq 18
16: aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
aload 0
getfield io.undertow.io.AsyncSenderImpl.transferTask:Lio/undertow/io/AsyncSenderImpl$TransferTask;
invokevirtual io.undertow.server.HttpServerExchange.dispatch:(Ljava/lang/Runnable;)Lio/undertow/server/HttpServerExchange;
pop
17: return
18: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.transferTask:Lio/undertow/io/AsyncSenderImpl$TransferTask;
invokevirtual io.undertow.io.AsyncSenderImpl$TransferTask.run:()V
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/undertow/io/AsyncSenderImpl;
0 20 1 source Ljava/nio/channels/FileChannel;
0 20 2 callback Lio/undertow/io/IoCallback;
MethodParameters:
Name Flags
source
callback
public void send(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic io.undertow.io.IoCallback.END_EXCHANGE:Lio/undertow/io/IoCallback;
invokevirtual io.undertow.io.AsyncSenderImpl.send:(Ljava/nio/ByteBuffer;Lio/undertow/io/IoCallback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/io/AsyncSenderImpl;
0 2 1 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer final
public void send(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic io.undertow.io.IoCallback.END_EXCHANGE:Lio/undertow/io/IoCallback;
invokevirtual io.undertow.io.AsyncSenderImpl.send:([Ljava/nio/ByteBuffer;Lio/undertow/io/IoCallback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/io/AsyncSenderImpl;
0 2 1 buffer [Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer final
public void send(java.lang.String, io.undertow.io.IoCallback);
descriptor: (Ljava/lang/String;Lio/undertow/io/IoCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
aload 2
invokevirtual io.undertow.io.AsyncSenderImpl.send:(Ljava/lang/String;Ljava/nio/charset/Charset;Lio/undertow/io/IoCallback;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/io/AsyncSenderImpl;
0 2 1 data Ljava/lang/String;
0 2 2 callback Lio/undertow/io/IoCallback;
MethodParameters:
Name Flags
data final
callback final
public void send(java.lang.String, java.nio.charset.Charset, io.undertow.io.IoCallback);
descriptor: (Ljava/lang/String;Ljava/nio/charset/Charset;Lio/undertow/io/IoCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.isOpen:()Z
ifne 3
1: aload 0
aload 3
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.isResponseComplete:()Z
ifeq 5
4: aload 0
aload 3
new java.io.IOException
dup
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.responseComplete:()Ljava/lang/IllegalStateException;
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
5: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 4
start local 4 6: aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
ifne 9
7: aload 3
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
aload 0
invokeinterface io.undertow.io.IoCallback.onComplete:(Lio/undertow/server/HttpServerExchange;Lio/undertow/io/Sender;)V
8: goto 24
9: StackMap locals: java.nio.ByteBuffer
StackMap stack:
iconst_0
istore 5
start local 5 10: aconst_null
astore 6
start local 6 11: goto 22
12: StackMap locals: int java.nio.ByteBuffer[]
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 7
start local 7 13: aload 6
ifnonnull 17
14: aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 7
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
iconst_1
isub
aload 7
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
idiv
istore 8
start local 8 15: aload 0
iload 8
anewarray io.undertow.connector.PooledByteBuffer
putfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
16: iload 8
anewarray java.nio.ByteBuffer
astore 6
end local 8 17: StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
iload 5
aload 7
aastore
18: aload 6
iload 5
aload 7
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aastore
19: aload 7
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aload 4
invokestatic org.xnio.Buffers.copy:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
pop
20: aload 7
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
21: iinc 5 1
end local 7 22: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 12
23: aload 0
aload 6
aload 3
invokevirtual io.undertow.io.AsyncSenderImpl.send:([Ljava/nio/ByteBuffer;Lio/undertow/io/IoCallback;)V
end local 6 end local 5 24: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lio/undertow/io/AsyncSenderImpl;
0 25 1 data Ljava/lang/String;
0 25 2 charset Ljava/nio/charset/Charset;
0 25 3 callback Lio/undertow/io/IoCallback;
6 25 4 bytes Ljava/nio/ByteBuffer;
10 24 5 i I
11 24 6 bufs [Ljava/nio/ByteBuffer;
13 22 7 pooled Lio/undertow/connector/PooledByteBuffer;
15 17 8 noBufs I
MethodParameters:
Name Flags
data final
charset final
callback final
public void send(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic io.undertow.io.IoCallback.END_EXCHANGE:Lio/undertow/io/IoCallback;
invokevirtual io.undertow.io.AsyncSenderImpl.send:(Ljava/lang/String;Lio/undertow/io/IoCallback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/io/AsyncSenderImpl;
0 2 1 data Ljava/lang/String;
MethodParameters:
Name Flags
data final
public void send(java.lang.String, java.nio.charset.Charset);
descriptor: (Ljava/lang/String;Ljava/nio/charset/Charset;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic io.undertow.io.IoCallback.END_EXCHANGE:Lio/undertow/io/IoCallback;
invokevirtual io.undertow.io.AsyncSenderImpl.send:(Ljava/lang/String;Ljava/nio/charset/Charset;Lio/undertow/io/IoCallback;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/io/AsyncSenderImpl;
0 2 1 data Ljava/lang/String;
0 2 2 charset Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
data final
charset final
public void close(io.undertow.io.IoCallback);
descriptor: (Lio/undertow/io/IoCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.io.AsyncSenderImpl.channel:Lorg/xnio/channels/StreamSinkChannel;
astore 2
start local 2 1: aload 2
ifnonnull 7
2: aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseContentLength:()J
ldc -1
lcmp
ifne 4
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseHeaders:()Lio/undertow/util/HeaderMap;
getstatic io.undertow.util.Headers.TRANSFER_ENCODING:Lio/undertow/util/HttpString;
invokevirtual io.undertow.util.HeaderMap.contains:(Lio/undertow/util/HttpString;)Z
ifne 4
3: aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
lconst_0
invokevirtual io.undertow.server.HttpServerExchange.setResponseContentLength:(J)Lio/undertow/server/HttpServerExchange;
pop
4: StackMap locals: org.xnio.channels.StreamSinkChannel
StackMap stack:
aload 0
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseChannel:()Lorg/xnio/channels/StreamSinkChannel;
dup
astore 2
putfield io.undertow.io.AsyncSenderImpl.channel:Lorg/xnio/channels/StreamSinkChannel;
5: aload 2
ifnonnull 7
6: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.responseChannelAlreadyProvided:()Ljava/lang/IllegalStateException;
athrow
7: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.xnio.channels.StreamSinkChannel.shutdownWrites:()V
8: aload 2
invokeinterface org.xnio.channels.StreamSinkChannel.flush:()Z
ifne 15
9: aload 2
invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
10: new io.undertow.io.AsyncSenderImpl$1
dup
aload 0
aload 1
invokespecial io.undertow.io.AsyncSenderImpl$1.<init>:(Lio/undertow/io/AsyncSenderImpl;Lio/undertow/io/IoCallback;)V
11: new io.undertow.io.AsyncSenderImpl$2
dup
aload 0
aload 1
invokespecial io.undertow.io.AsyncSenderImpl$2.<init>:(Lio/undertow/io/AsyncSenderImpl;Lio/undertow/io/IoCallback;)V
12: invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
13: aload 2
invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
14: goto 21
15: StackMap locals:
StackMap stack:
aload 1
ifnull 21
16: aload 1
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
aload 0
invokeinterface io.undertow.io.IoCallback.onComplete:(Lio/undertow/server/HttpServerExchange;Lio/undertow/io/Sender;)V
end local 2 17: goto 21
StackMap locals: io.undertow.io.AsyncSenderImpl io.undertow.io.IoCallback
StackMap stack: java.io.IOException
18: astore 2
start local 2 19: aload 1
ifnull 21
20: aload 0
aload 1
aload 2
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
end local 2 21: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lio/undertow/io/AsyncSenderImpl;
0 22 1 callback Lio/undertow/io/IoCallback;
1 17 2 channel Lorg/xnio/channels/StreamSinkChannel;
19 21 2 e Ljava/io/IOException;
Exception table:
from to target type
0 17 18 Class java.io.IOException
MethodParameters:
Name Flags
callback final
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokevirtual io.undertow.io.AsyncSenderImpl.close:(Lio/undertow/io/IoCallback;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/io/AsyncSenderImpl;
private void invokeOnComplete();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
ifnull 7
1: aload 0
getfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 5
StackMap locals: io.undertow.io.AsyncSenderImpl top int int io.undertow.connector.PooledByteBuffer[]
StackMap stack:
2: aload 4
iload 2
aaload
astore 1
start local 1 3: aload 1
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
end local 1 4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 3
if_icmplt 2
6: aload 0
aconst_null
putfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
7: StackMap locals: io.undertow.io.AsyncSenderImpl
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.callback:Lio/undertow/io/IoCallback;
astore 1
start local 1 8: aload 0
aconst_null
putfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
9: aload 0
aconst_null
putfield io.undertow.io.AsyncSenderImpl.fileChannel:Ljava/nio/channels/FileChannel;
10: aload 0
aconst_null
putfield io.undertow.io.AsyncSenderImpl.callback:Lio/undertow/io/IoCallback;
11: aload 0
iconst_1
putfield io.undertow.io.AsyncSenderImpl.inCallback:Z
12: aload 1
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
aload 0
invokeinterface io.undertow.io.IoCallback.onComplete:(Lio/undertow/server/HttpServerExchange;Lio/undertow/io/Sender;)V
13: goto 17
StackMap locals: io.undertow.io.AsyncSenderImpl io.undertow.io.IoCallback
StackMap stack: java.lang.Throwable
14: astore 2
15: aload 0
iconst_0
putfield io.undertow.io.AsyncSenderImpl.inCallback:Z
16: aload 2
athrow
17: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield io.undertow.io.AsyncSenderImpl.inCallback:Z
18: aload 0
getfield io.undertow.io.AsyncSenderImpl.channel:Lorg/xnio/channels/StreamSinkChannel;
astore 2
start local 2 19: aload 0
getfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
ifnull 37
20: aload 0
getfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
invokestatic org.xnio.Buffers.remaining:([Ljava/nio/Buffer;)J
lstore 3
start local 3 21: lload 3
lstore 5
start local 5 22: lconst_0
lstore 7
start local 7 23: StackMap locals: io.undertow.io.AsyncSenderImpl io.undertow.io.IoCallback org.xnio.channels.StreamSinkChannel long long long
StackMap stack:
aload 2
aload 0
getfield io.undertow.io.AsyncSenderImpl.buffer:[Ljava/nio/ByteBuffer;
invokeinterface org.xnio.channels.StreamSinkChannel.write:([Ljava/nio/ByteBuffer;)J
lstore 9
start local 9 24: lload 7
lload 9
ladd
lstore 7
25: lload 9
lconst_0
lcmp
ifne 31
26: aload 0
getfield io.undertow.io.AsyncSenderImpl.writeListener:Lorg/xnio/ChannelListener;
ifnonnull 28
27: aload 0
invokevirtual io.undertow.io.AsyncSenderImpl.initWriteListener:()V
28: StackMap locals: long
StackMap stack:
aload 2
invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
aload 0
getfield io.undertow.io.AsyncSenderImpl.writeListener:Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
29: aload 2
invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
30: return
end local 9 31: StackMap locals:
StackMap stack:
lload 7
lload 5
32: lcmp
iflt 23
33: goto 0
StackMap locals:
StackMap stack: java.io.IOException
34: astore 9
start local 9 35: aload 0
aload 1
aload 9
invokevirtual io.undertow.io.AsyncSenderImpl.invokeOnException:(Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
end local 9 end local 7 end local 5 end local 3 36: goto 0
StackMap locals:
StackMap stack:
37: aload 0
getfield io.undertow.io.AsyncSenderImpl.fileChannel:Ljava/nio/channels/FileChannel;
ifnull 42
38: aload 0
getfield io.undertow.io.AsyncSenderImpl.transferTask:Lio/undertow/io/AsyncSenderImpl$TransferTask;
ifnonnull 40
39: aload 0
new io.undertow.io.AsyncSenderImpl$TransferTask
dup
aload 0
invokespecial io.undertow.io.AsyncSenderImpl$TransferTask.<init>:(Lio/undertow/io/AsyncSenderImpl;)V
putfield io.undertow.io.AsyncSenderImpl.transferTask:Lio/undertow/io/AsyncSenderImpl$TransferTask;
40: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.io.AsyncSenderImpl.transferTask:Lio/undertow/io/AsyncSenderImpl$TransferTask;
iconst_0
invokevirtual io.undertow.io.AsyncSenderImpl$TransferTask.run:(Z)Z
ifne 0
41: return
42: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lio/undertow/io/AsyncSenderImpl;
3 4 1 buffer Lio/undertow/connector/PooledByteBuffer;
8 43 1 callback Lio/undertow/io/IoCallback;
19 43 2 channel Lorg/xnio/channels/StreamSinkChannel;
21 36 3 t J
22 36 5 total J
23 36 7 written J
24 31 9 res J
35 36 9 e Ljava/io/IOException;
Exception table:
from to target type
12 14 14 any
23 30 34 Class java.io.IOException
31 33 34 Class java.io.IOException
private void invokeOnException(io.undertow.io.IoCallback, java.io.IOException);
descriptor: (Lio/undertow/io/IoCallback;Ljava/io/IOException;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
ifnull 7
1: aload 0
getfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: io.undertow.io.AsyncSenderImpl io.undertow.io.IoCallback java.io.IOException top int int io.undertow.connector.PooledByteBuffer[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 3
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
end local 3 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 2
6: aload 0
aconst_null
putfield io.undertow.io.AsyncSenderImpl.pooledBuffers:[Lio/undertow/connector/PooledByteBuffer;
7: StackMap locals: io.undertow.io.AsyncSenderImpl io.undertow.io.IoCallback java.io.IOException
StackMap stack:
aload 1
aload 0
getfield io.undertow.io.AsyncSenderImpl.exchange:Lio/undertow/server/HttpServerExchange;
aload 0
aload 2
invokeinterface io.undertow.io.IoCallback.onException:(Lio/undertow/server/HttpServerExchange;Lio/undertow/io/Sender;Ljava/io/IOException;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/io/AsyncSenderImpl;
0 9 1 callback Lio/undertow/io/IoCallback;
0 9 2 e Ljava/io/IOException;
3 4 3 buffer Lio/undertow/connector/PooledByteBuffer;
MethodParameters:
Name Flags
callback
e
private void initWriteListener();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new io.undertow.io.AsyncSenderImpl$3
dup
aload 0
invokespecial io.undertow.io.AsyncSenderImpl$3.<init>:(Lio/undertow/io/AsyncSenderImpl;)V
putfield io.undertow.io.AsyncSenderImpl.writeListener:Lorg/xnio/ChannelListener;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/io/AsyncSenderImpl;
}
SourceFile: "AsyncSenderImpl.java"
NestMembers:
io.undertow.io.AsyncSenderImpl$1 io.undertow.io.AsyncSenderImpl$2 io.undertow.io.AsyncSenderImpl$3 io.undertow.io.AsyncSenderImpl$TransferTask
InnerClasses:
io.undertow.io.AsyncSenderImpl$1
io.undertow.io.AsyncSenderImpl$2
io.undertow.io.AsyncSenderImpl$3
public TransferTask = io.undertow.io.AsyncSenderImpl$TransferTask of io.undertow.io.AsyncSenderImpl
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener