final class io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask
super_class: java.lang.Object
{
private final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.channels.StreamSourceChannel requestChannel;
descriptor: Lorg/xnio/channels/StreamSourceChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler this$1;
descriptor: Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler, java.util.concurrent.Executor, org.xnio.channels.StreamSourceChannel);
descriptor: (Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;Ljava/util/concurrent/Executor;Lorg/xnio/channels/StreamSourceChannel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.executor:Ljava/util/concurrent/Executor;
2: aload 0
aload 3
putfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.requestChannel:Lorg/xnio/channels/StreamSourceChannel;
3: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask;
0 4 2 executor Ljava/util/concurrent/Executor;
0 4 3 requestChannel Lorg/xnio/channels/StreamSourceChannel;
MethodParameters:
Name Flags
this$0 final
executor
requestChannel
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
getstatic io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.FORM_DATA:Lio/undertow/util/AttachmentKey;
invokevirtual io.undertow.server.HttpServerExchange.getAttachment:(Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
checkcast io.undertow.server.handlers.form.FormData
astore 1
start local 1 1: aload 1
ifnull 4
2: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
getstatic io.undertow.util.SameThreadExecutor.INSTANCE:Ljava/util/concurrent/Executor;
aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.handler:Lio/undertow/server/HttpHandler;
invokevirtual io.undertow.server.HttpServerExchange.dispatch:(Ljava/util/concurrent/Executor;Lio/undertow/server/HttpHandler;)Lio/undertow/server/HttpServerExchange;
pop
3: return
4: StackMap locals: io.undertow.server.handlers.form.FormData
StackMap stack:
aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.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 2
start local 2 5: StackMap locals: io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.requestChannel:Lorg/xnio/channels/StreamSourceChannel;
aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokeinterface org.xnio.channels.StreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 6: iload 3
ifne 11
7: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.requestChannel:Lorg/xnio/channels/StreamSourceChannel;
invokeinterface org.xnio.channels.StreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
new io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask$1
dup
aload 0
invokespecial io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask$1.<init>:(Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask;)V
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
8: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.requestChannel:Lorg/xnio/channels/StreamSourceChannel;
invokeinterface org.xnio.channels.StreamSourceChannel.resumeReads:()V
9: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
10: return
11: StackMap locals: int
StackMap stack:
iload 3
iconst_m1
if_icmpne 21
12: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.parser:Lio/undertow/util/MultipartParser$ParseState;
invokevirtual io.undertow.util.MultipartParser$ParseState.isComplete:()Z
ifeq 16
13: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
getstatic io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.FORM_DATA:Lio/undertow/util/AttachmentKey;
aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.data:Lio/undertow/server/handlers/form/FormData;
invokevirtual io.undertow.server.HttpServerExchange.putAttachment:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
getstatic io.undertow.util.SameThreadExecutor.INSTANCE:Ljava/util/concurrent/Executor;
aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.handler:Lio/undertow/server/HttpHandler;
invokevirtual io.undertow.server.HttpServerExchange.dispatch:(Ljava/util/concurrent/Executor;Lio/undertow/server/HttpHandler;)Lio/undertow/server/HttpServerExchange;
pop
15: goto 19
16: StackMap locals:
StackMap stack:
getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.connectionTerminatedReadingMultiPartData:()Ljava/io/IOException;
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
17: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
sipush 500
invokevirtual io.undertow.server.HttpServerExchange.setStatusCode:(I)Lio/undertow/server/HttpServerExchange;
pop
18: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.endExchange:()Lio/undertow/server/HttpServerExchange;
pop
19: StackMap locals:
StackMap stack:
aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
20: return
21: StackMap locals:
StackMap stack:
aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
22: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.parser:Lio/undertow/util/MultipartParser$ParseState;
aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual io.undertow.util.MultipartParser$ParseState.parse:(Ljava/nio/ByteBuffer;)V
23: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
end local 3 24: goto 5
25: StackMap locals: io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask io.undertow.server.handlers.form.FormData io.undertow.connector.PooledByteBuffer
StackMap stack: io.undertow.util.MalformedMessageException
astore 3
start local 3 26: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 3
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
27: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
sipush 500
invokevirtual io.undertow.server.HttpServerExchange.setStatusCode:(I)Lio/undertow/server/HttpServerExchange;
pop
28: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.endExchange:()Lio/undertow/server/HttpServerExchange;
pop
end local 3 29: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
goto 37
30: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
31: aload 2
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
32: aload 4
athrow
end local 2 end local 1 33: StackMap locals: io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask
StackMap stack: java.lang.Throwable
astore 1
start local 1 34: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
ldc "Exception parsing data"
aload 1
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
35: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
sipush 500
invokevirtual io.undertow.server.HttpServerExchange.setStatusCode:(I)Lio/undertow/server/HttpServerExchange;
pop
36: aload 0
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.endExchange:()Lio/undertow/server/HttpServerExchange;
pop
end local 1 37: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask;
1 33 1 existing Lio/undertow/server/handlers/form/FormData;
5 33 2 pooled Lio/undertow/connector/PooledByteBuffer;
6 24 3 c I
26 29 3 e Lio/undertow/util/MalformedMessageException;
34 37 1 e Ljava/lang/Throwable;
Exception table:
from to target type
5 9 25 Class io.undertow.util.MalformedMessageException
11 19 25 Class io.undertow.util.MalformedMessageException
21 25 25 Class io.undertow.util.MalformedMessageException
5 9 30 any
11 19 30 any
21 29 30 any
0 3 33 Class java.lang.Throwable
4 10 33 Class java.lang.Throwable
11 20 33 Class java.lang.Throwable
21 33 33 Class java.lang.Throwable
}
SourceFile: "MultiPartParserDefinition.java"
NestHost: io.undertow.server.handlers.form.MultiPartParserDefinition
InnerClasses:
private final MultiPartUploadHandler = io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler of io.undertow.server.handlers.form.MultiPartParserDefinition
private final NonBlockingParseTask = io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask of io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler
io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask$1
public ParseState = io.undertow.util.MultipartParser$ParseState of io.undertow.util.MultipartParser
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener