class org.glassfish.grizzly.servlet.AsyncContextImpl$Handler implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.glassfish.grizzly.servlet.AsyncContextImpl$Handler
  super_class: java.lang.Object
{
  private final org.glassfish.grizzly.servlet.AsyncContextImpl asyncContext;
    descriptor: Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.glassfish.grizzly.servlet.ApplicationDispatcher dispatcher;
    descriptor: Lorg/glassfish/grizzly/servlet/ApplicationDispatcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.glassfish.grizzly.servlet.HttpServletRequestImpl origRequest;
    descriptor: Lorg/glassfish/grizzly/servlet/HttpServletRequestImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(org.glassfish.grizzly.servlet.AsyncContextImpl, org.glassfish.grizzly.servlet.ApplicationDispatcher, org.glassfish.grizzly.servlet.HttpServletRequestImpl);
    descriptor: (Lorg/glassfish/grizzly/servlet/AsyncContextImpl;Lorg/glassfish/grizzly/servlet/ApplicationDispatcher;Lorg/glassfish/grizzly/servlet/HttpServletRequestImpl;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.glassfish.grizzly.servlet.AsyncContextImpl$Handler this
        start local 1 // org.glassfish.grizzly.servlet.AsyncContextImpl asyncContext
        start local 2 // org.glassfish.grizzly.servlet.ApplicationDispatcher dispatcher
        start local 3 // org.glassfish.grizzly.servlet.HttpServletRequestImpl origRequest
         0: .line 372
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 373
            aload 0 /* this */
            aload 1 /* asyncContext */
            putfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
         2: .line 374
            aload 0 /* this */
            aload 2 /* dispatcher */
            putfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.dispatcher:Lorg/glassfish/grizzly/servlet/ApplicationDispatcher;
         3: .line 375
            aload 0 /* this */
            aload 3 /* origRequest */
            putfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.origRequest:Lorg/glassfish/grizzly/servlet/HttpServletRequestImpl;
         4: .line 376
            return
        end local 3 // org.glassfish.grizzly.servlet.HttpServletRequestImpl origRequest
        end local 2 // org.glassfish.grizzly.servlet.ApplicationDispatcher dispatcher
        end local 1 // org.glassfish.grizzly.servlet.AsyncContextImpl asyncContext
        end local 0 // org.glassfish.grizzly.servlet.AsyncContextImpl$Handler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/glassfish/grizzly/servlet/AsyncContextImpl$Handler;
            0    5     1  asyncContext  Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            0    5     2    dispatcher  Lorg/glassfish/grizzly/servlet/ApplicationDispatcher;
            0    5     3   origRequest  Lorg/glassfish/grizzly/servlet/HttpServletRequestImpl;
    MethodParameters:
              Name  Flags
      asyncContext  
      dispatcher    
      origRequest   

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.glassfish.grizzly.servlet.AsyncContextImpl$Handler this
         0: .line 380
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl.isStartAsyncInScope:Ljava/lang/ThreadLocal;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 381
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.origRequest:Lorg/glassfish/grizzly/servlet/HttpServletRequestImpl;
            ldc "org.apache.catalina.core.DISPATCHER_TYPE"
            getstatic jakarta.servlet.DispatcherType.ASYNC:Ljakarta/servlet/DispatcherType;
            invokevirtual org.glassfish.grizzly.servlet.HttpServletRequestImpl.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 382
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.origRequest:Lorg/glassfish/grizzly/servlet/HttpServletRequestImpl;
            iconst_0
            invokevirtual org.glassfish.grizzly.servlet.HttpServletRequestImpl.setAsyncStarted:(Z)V
         3: .line 383
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl.startAsyncCounter:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            istore 1 /* startAsyncCurrent */
        start local 1 // int startAsyncCurrent
         4: .line 385
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.dispatcher:Lorg/glassfish/grizzly/servlet/ApplicationDispatcher;
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            invokevirtual org.glassfish.grizzly.servlet.AsyncContextImpl.getRequest:()Ljakarta/servlet/ServletRequest;
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            invokevirtual org.glassfish.grizzly.servlet.AsyncContextImpl.getResponse:()Ljakarta/servlet/ServletResponse;
            getstatic jakarta.servlet.DispatcherType.ASYNC:Ljakarta/servlet/DispatcherType;
            invokevirtual org.glassfish.grizzly.servlet.ApplicationDispatcher.dispatch:(Ljakarta/servlet/ServletRequest;Ljakarta/servlet/ServletResponse;Ljakarta/servlet/DispatcherType;)V
         5: .line 391
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl.startAsyncCounter:Ljava/util/concurrent/atomic/AtomicInteger;
            iload 1 /* startAsyncCurrent */
            iload 1 /* startAsyncCurrent */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.compareAndSet:(II)Z
            ifeq 8
         6: .line 392
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            invokevirtual org.glassfish.grizzly.servlet.AsyncContextImpl.complete:()V
         7: .line 393
            goto 17
         8: .line 395
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.origRequest:Lorg/glassfish/grizzly/servlet/HttpServletRequestImpl;
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            invokevirtual org.glassfish.grizzly.servlet.AsyncContextImpl.getTimeout:()J
            invokevirtual org.glassfish.grizzly.servlet.HttpServletRequestImpl.setAsyncTimeout:(J)V
         9: .line 397
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 2 /* t */
        start local 2 // java.lang.Throwable t
        11: .line 398
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            getstatic org.glassfish.grizzly.servlet.AsyncContextImpl$AsyncEventType.ERROR:Lorg/glassfish/grizzly/servlet/AsyncContextImpl$AsyncEventType;
            aload 2 /* t */
            invokevirtual org.glassfish.grizzly.servlet.AsyncContextImpl.notifyAsyncListeners:(Lorg/glassfish/grizzly/servlet/AsyncContextImpl$AsyncEventType;Ljava/lang/Throwable;)V
        12: .line 399
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            invokevirtual org.glassfish.grizzly.servlet.AsyncContextImpl.getOriginalRequest:()Lorg/glassfish/grizzly/servlet/HttpServletRequestImpl;
            aload 2 /* t */
            invokevirtual org.glassfish.grizzly.servlet.HttpServletRequestImpl.errorDispatchAndComplete:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable t
        13: .line 401
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl.isStartAsyncInScope:Ljava/lang/ThreadLocal;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
            goto 18
        14: .line 400
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        15: .line 401
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl.isStartAsyncInScope:Ljava/lang/ThreadLocal;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
        16: .line 402
            aload 3
            athrow
        17: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl$Handler.asyncContext:Lorg/glassfish/grizzly/servlet/AsyncContextImpl;
            getfield org.glassfish.grizzly.servlet.AsyncContextImpl.isStartAsyncInScope:Ljava/lang/ThreadLocal;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
        18: .line 403
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int startAsyncCurrent
        end local 0 // org.glassfish.grizzly.servlet.AsyncContextImpl$Handler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lorg/glassfish/grizzly/servlet/AsyncContextImpl$Handler;
            4   19     1  startAsyncCurrent  I
           11   13     2                  t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     9      10  Class java.lang.Throwable
           4    13      14  any
}
SourceFile: "AsyncContextImpl.java"
NestHost: org.glassfish.grizzly.servlet.AsyncContextImpl
InnerClasses:
  final AsyncEventType = org.glassfish.grizzly.servlet.AsyncContextImpl$AsyncEventType of org.glassfish.grizzly.servlet.AsyncContextImpl
  Handler = org.glassfish.grizzly.servlet.AsyncContextImpl$Handler of org.glassfish.grizzly.servlet.AsyncContextImpl