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 // io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask this
        start local 2 // java.util.concurrent.Executor executor
        start local 3 // org.xnio.channels.StreamSourceChannel requestChannel
         0: .line 344
            aload 0 /* this */
            aload 1
            putfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.this$1:Lio/undertow/server/handlers/form/MultiPartParserDefinition$MultiPartUploadHandler;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 345
            aload 0 /* this */
            aload 2 /* executor */
            putfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.executor:Ljava/util/concurrent/Executor;
         2: .line 346
            aload 0 /* this */
            aload 3 /* requestChannel */
            putfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.requestChannel:Lorg/xnio/channels/StreamSourceChannel;
         3: .line 347
            return
        end local 3 // org.xnio.channels.StreamSourceChannel requestChannel
        end local 2 // java.util.concurrent.Executor executor
        end local 0 // io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask this
      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 // io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask this
         0: .line 352
            aload 0 /* this */
            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 /* existing */
        start local 1 // io.undertow.server.handlers.form.FormData existing
         1: .line 353
            aload 1 /* existing */
            ifnull 4
         2: .line 354
            aload 0 /* this */
            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 /* this */
            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: .line 355
            return
         4: .line 357
      StackMap locals: io.undertow.server.handlers.form.FormData
      StackMap stack:
            aload 0 /* this */
            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 /* pooled */
        start local 2 // io.undertow.connector.PooledByteBuffer pooled
         5: .line 360
      StackMap locals: io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.requestChannel:Lorg/xnio/channels/StreamSourceChannel;
            aload 2 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokeinterface org.xnio.channels.StreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 3 /* c */
        start local 3 // int c
         6: .line 361
            iload 3 /* c */
            ifne 11
         7: .line 362
            aload 0 /* this */
            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 /* this */
            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: .line 369
            aload 0 /* this */
            getfield io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask.requestChannel:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.resumeReads:()V
         9: .line 392
            aload 2 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        10: .line 370
            return
        11: .line 371
      StackMap locals: int
      StackMap stack:
            iload 3 /* c */
            iconst_m1
            if_icmpne 21
        12: .line 372
            aload 0 /* this */
            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: .line 373
            aload 0 /* this */
            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 /* this */
            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: .line 374
            aload 0 /* this */
            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 /* this */
            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: .line 375
            goto 19
        16: .line 376
      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: .line 377
            aload 0 /* this */
            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: .line 378
            aload 0 /* this */
            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: .line 392
      StackMap locals:
      StackMap stack:
            aload 2 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        20: .line 380
            return
        21: .line 382
      StackMap locals:
      StackMap stack:
            aload 2 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        22: .line 383
            aload 0 /* this */
            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 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual io.undertow.util.MultipartParser$ParseState.parse:(Ljava/nio/ByteBuffer;)V
        23: .line 384
            aload 2 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        end local 3 // int c
        24: .line 359
            goto 5
        25: .line 387
      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 /* e */
        start local 3 // io.undertow.util.MalformedMessageException e
        26: .line 388
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            aload 3 /* e */
            invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
        27: .line 389
            aload 0 /* this */
            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: .line 390
            aload 0 /* this */
            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 // io.undertow.util.MalformedMessageException e
        29: .line 392
            aload 2 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
            goto 37
        30: .line 391
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        31: .line 392
            aload 2 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        32: .line 393
            aload 4
            athrow
        end local 2 // io.undertow.connector.PooledByteBuffer pooled
        end local 1 // io.undertow.server.handlers.form.FormData existing
        33: .line 395
      StackMap locals: io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask
      StackMap stack: java.lang.Throwable
            astore 1 /* e */
        start local 1 // java.lang.Throwable e
        34: .line 396
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            ldc "Exception parsing data"
            aload 1 /* e */
            invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        35: .line 397
            aload 0 /* this */
            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: .line 398
            aload 0 /* this */
            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 // java.lang.Throwable e
        37: .line 400
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.handlers.form.MultiPartParserDefinition$MultiPartUploadHandler$NonBlockingParseTask this
      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