public class org.apache.catalina.core.AsyncContextImpl implements javax.servlet.AsyncContext, org.apache.coyote.AsyncContextCallback
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.core.AsyncContextImpl
  super_class: java.lang.Object
{
  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  private final java.lang.Object asyncContextLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile javax.servlet.ServletRequest servletRequest;
    descriptor: Ljavax/servlet/ServletRequest;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile javax.servlet.ServletResponse servletResponse;
    descriptor: Ljavax/servlet/ServletResponse;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.List<org.apache.catalina.core.AsyncListenerWrapper> listeners;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;

  private boolean hasOriginalRequestAndResponse;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private volatile java.lang.Runnable dispatch;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private org.apache.catalina.Context context;
    descriptor: Lorg/apache/catalina/Context;
    flags: (0x0002) ACC_PRIVATE

  private long timeout;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private javax.servlet.AsyncEvent event;
    descriptor: Ljavax/servlet/AsyncEvent;
    flags: (0x0002) ACC_PRIVATE

  private volatile org.apache.catalina.connector.Request request;
    descriptor: Lorg/apache/catalina/connector/Request;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 54
            ldc Lorg/apache/catalina/core/AsyncContextImpl;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
         1: .line 57
            ldc "org.apache.catalina.core"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         2: .line 56
            putstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
         3: .line 57
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.catalina.connector.Request);
    descriptor: (Lorg/apache/catalina/connector/Request;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // org.apache.catalina.connector.Request request
         0: .line 79
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.apache.catalina.core.AsyncContextImpl.asyncContextLock:Ljava/lang/Object;
         2: .line 68
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljavax/servlet/ServletRequest;
         3: .line 69
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljavax/servlet/ServletResponse;
         4: .line 70
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
         5: .line 71
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.core.AsyncContextImpl.hasOriginalRequestAndResponse:Z
         6: .line 72
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
         7: .line 73
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
         8: .line 75
            aload 0 /* this */
            ldc -1
            putfield org.apache.catalina.core.AsyncContextImpl.timeout:J
         9: .line 76
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
        10: .line 80
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 12
        11: .line 81
            aload 0 /* this */
            ldc "Constructor"
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
        12: .line 83
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.connector.Request
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            putfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
        13: .line 84
            return
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   14     1  request  Lorg/apache/catalina/connector/Request;
    MethodParameters:
         Name  Flags
      request  

  public void complete();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 88
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 89
            aload 0 /* this */
            ldc "complete   "
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         2: .line 91
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         3: .line 92
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ActionCode.ASYNC_COMPLETE:Lorg/apache/coyote/ActionCode;
            aconst_null
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         4: .line 93
            return
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/catalina/core/AsyncContextImpl;

  public void fireOnComplete();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 97
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* listenersCopy */
        start local 1 // java.util.List listenersCopy
         1: .line 98
            aload 1 /* listenersCopy */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 100
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aconst_null
            invokeinterface org.apache.catalina.Context.bind:(ZLjava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 2 /* oldCL */
        start local 2 // java.lang.ClassLoader oldCL
         3: .line 102
            aload 1 /* listenersCopy */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.List java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.core.AsyncListenerWrapper
            astore 3 /* listener */
        start local 3 // org.apache.catalina.core.AsyncListenerWrapper listener
         5: .line 104
            aload 3 /* listener */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.fireOnComplete:(Ljavax/servlet/AsyncEvent;)V
         6: .line 105
            goto 14
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.List java.lang.ClassLoader org.apache.catalina.core.AsyncListenerWrapper java.util.Iterator
      StackMap stack: java.lang.Throwable
         7: astore 5 /* t */
        start local 5 // java.lang.Throwable t
         8: .line 106
            aload 5 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
         9: .line 107
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "asyncContextImpl.onCompleteError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 108
            aload 3 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        11: .line 107
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        12: .line 108
            aload 5 /* t */
        13: .line 107
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable t
        end local 3 // org.apache.catalina.core.AsyncListenerWrapper listener
        14: .line 102
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.List java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        15: .line 111
            goto 22
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.List java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
        16: astore 6
        17: .line 112
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljavax/servlet/http/HttpServletRequest;
            invokeinterface org.apache.catalina.Context.fireRequestDestroyEvent:(Ljavax/servlet/ServletRequest;)Z
            pop
        18: .line 113
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.clearServletRequestResponse:()V
        19: .line 114
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.decrementInProgressAsyncCount:()V
        20: .line 115
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aload 2 /* oldCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        21: .line 116
            aload 6
            athrow
        22: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getRequest:()Ljavax/servlet/http/HttpServletRequest;
            invokeinterface org.apache.catalina.Context.fireRequestDestroyEvent:(Ljavax/servlet/ServletRequest;)Z
            pop
        23: .line 113
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.clearServletRequestResponse:()V
        24: .line 114
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.decrementInProgressAsyncCount:()V
        25: .line 115
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            aload 2 /* oldCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        26: .line 117
            return
        end local 2 // java.lang.ClassLoader oldCL
        end local 1 // java.util.List listenersCopy
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   27     0           this  Lorg/apache/catalina/core/AsyncContextImpl;
            1   27     1  listenersCopy  Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;
            3   27     2          oldCL  Ljava/lang/ClassLoader;
            5   14     3       listener  Lorg/apache/catalina/core/AsyncListenerWrapper;
            8   14     5              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Throwable
           3    16      16  any

  public boolean timeout();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 121
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.concurrent.atomic.AtomicBoolean result
         1: .line 122
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ActionCode.ASYNC_TIMEOUT:Lorg/apache/coyote/ActionCode;
            aload 1 /* result */
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         2: .line 124
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            astore 2 /* context */
        start local 2 // org.apache.catalina.Context context
         3: .line 126
            aload 1 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 27
         4: .line 127
            aload 2 /* context */
            iconst_0
            aconst_null
            invokeinterface org.apache.catalina.Context.bind:(ZLjava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 3 /* oldCL */
        start local 3 // java.lang.ClassLoader oldCL
         5: .line 129
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* listenersCopy */
        start local 4 // java.util.List listenersCopy
         6: .line 130
            aload 4 /* listenersCopy */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         7: .line 131
            aload 4 /* listenersCopy */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.concurrent.atomic.AtomicBoolean org.apache.catalina.Context java.lang.ClassLoader java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.core.AsyncListenerWrapper
            astore 5 /* listener */
        start local 5 // org.apache.catalina.core.AsyncListenerWrapper listener
         9: .line 133
            aload 5 /* listener */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.fireOnTimeout:(Ljavax/servlet/AsyncEvent;)V
        10: .line 134
            goto 18
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.concurrent.atomic.AtomicBoolean org.apache.catalina.Context java.lang.ClassLoader java.util.List org.apache.catalina.core.AsyncListenerWrapper java.util.Iterator
      StackMap stack: java.lang.Throwable
        11: astore 7 /* t */
        start local 7 // java.lang.Throwable t
        12: .line 135
            aload 7 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        13: .line 136
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "asyncContextImpl.onTimeoutError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        14: .line 137
            aload 5 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        15: .line 136
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        16: .line 137
            aload 7 /* t */
        17: .line 136
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.lang.Throwable t
        end local 5 // org.apache.catalina.core.AsyncListenerWrapper listener
        18: .line 131
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.concurrent.atomic.AtomicBoolean org.apache.catalina.Context java.lang.ClassLoader java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        19: .line 140
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
        20: .line 141
            getstatic org.apache.coyote.ActionCode.ASYNC_IS_TIMINGOUT:Lorg/apache/coyote/ActionCode;
            aload 1 /* result */
        21: .line 140
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
        end local 4 // java.util.List listenersCopy
        22: .line 142
            goto 26
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.concurrent.atomic.AtomicBoolean org.apache.catalina.Context java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
        23: astore 8
        24: .line 143
            aload 2 /* context */
            iconst_0
            aload 3 /* oldCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        25: .line 144
            aload 8
            athrow
        26: .line 143
      StackMap locals:
      StackMap stack:
            aload 2 /* context */
            iconst_0
            aload 3 /* oldCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        end local 3 // java.lang.ClassLoader oldCL
        27: .line 146
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 28
            iconst_0
            goto 29
      StackMap locals:
      StackMap stack:
        28: iconst_1
      StackMap locals:
      StackMap stack: int
        29: ireturn
        end local 2 // org.apache.catalina.Context context
        end local 1 // java.util.concurrent.atomic.AtomicBoolean result
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   30     0           this  Lorg/apache/catalina/core/AsyncContextImpl;
            1   30     1         result  Ljava/util/concurrent/atomic/AtomicBoolean;
            3   30     2        context  Lorg/apache/catalina/Context;
            5   27     3          oldCL  Ljava/lang/ClassLoader;
            6   22     4  listenersCopy  Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;
            9   18     5       listener  Lorg/apache/catalina/core/AsyncListenerWrapper;
           12   18     7              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.Throwable
           5    23      23  any

  public void dispatch();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 151
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 154
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.getRequest:()Ljavax/servlet/ServletRequest;
            astore 3 /* servletRequest */
        start local 3 // javax.servlet.ServletRequest servletRequest
         2: .line 155
            aload 3 /* servletRequest */
            instanceof javax.servlet.http.HttpServletRequest
            ifeq 7
         3: .line 156
            aload 3 /* servletRequest */
            checkcast javax.servlet.http.HttpServletRequest
            astore 4 /* sr */
        start local 4 // javax.servlet.http.HttpServletRequest sr
         4: .line 157
            aload 4 /* sr */
            invokeinterface javax.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         5: .line 158
            aload 4 /* sr */
            invokeinterface javax.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
            astore 2 /* cpath */
        end local 4 // javax.servlet.http.HttpServletRequest sr
        start local 2 // java.lang.String cpath
         6: .line 159
            goto 9
        end local 2 // java.lang.String cpath
        end local 1 // java.lang.String path
         7: .line 160
      StackMap locals: org.apache.catalina.core.AsyncContextImpl top top javax.servlet.ServletRequest
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         8: .line 161
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getContextPath:()Ljava/lang/String;
            astore 2 /* cpath */
        start local 2 // java.lang.String cpath
         9: .line 163
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.String java.lang.String javax.servlet.ServletRequest
      StackMap stack:
            aload 2 /* cpath */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 11
        10: .line 164
            aload 1 /* path */
            aload 2 /* cpath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* path */
        11: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getDispatchersUseEncodedPaths:()Z
            ifne 13
        12: .line 167
            aload 1 /* path */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokestatic org.apache.tomcat.util.buf.UDecoder.URLDecode:(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;
            astore 1 /* path */
        13: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.dispatch:(Ljava/lang/String;)V
        14: .line 170
            return
        end local 3 // javax.servlet.ServletRequest servletRequest
        end local 2 // java.lang.String cpath
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/apache/catalina/core/AsyncContextImpl;
            5    7     1            path  Ljava/lang/String;
            8   15     1            path  Ljava/lang/String;
            6    7     2           cpath  Ljava/lang/String;
            9   15     2           cpath  Ljava/lang/String;
            2   15     3  servletRequest  Ljavax/servlet/ServletRequest;
            4    6     4              sr  Ljavax/servlet/http/HttpServletRequest;

  public void dispatch(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // java.lang.String path
         0: .line 174
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 175
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.getRequest:()Ljavax/servlet/ServletRequest;
            invokeinterface javax.servlet.ServletRequest.getServletContext:()Ljavax/servlet/ServletContext;
            aload 1 /* path */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.dispatch:(Ljavax/servlet/ServletContext;Ljava/lang/String;)V
         2: .line 176
            return
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/core/AsyncContextImpl;
            0    3     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public void dispatch(javax.servlet.ServletContext, java.lang.String);
    descriptor: (Ljavax/servlet/ServletContext;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // javax.servlet.ServletContext servletContext
        start local 2 // java.lang.String path
         0: .line 180
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.asyncContextLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 181
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 3
         2: .line 182
            aload 0 /* this */
            ldc "dispatch   "
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         3: .line 184
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         4: .line 185
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
            ifnull 8
         5: .line 186
            new java.lang.IllegalStateException
            dup
         6: .line 187
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "asyncContextImpl.dispatchingStarted"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         7: .line 186
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "javax.servlet.async.request_uri"
            invokevirtual org.apache.catalina.connector.Request.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 14
         9: .line 190
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "javax.servlet.async.request_uri"
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
            invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 191
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "javax.servlet.async.context_path"
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getContextPath:()Ljava/lang/String;
            invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 192
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "javax.servlet.async.servlet_path"
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getServletPath:()Ljava/lang/String;
            invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 193
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "javax.servlet.async.path_info"
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getPathInfo:()Ljava/lang/String;
            invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 194
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "javax.servlet.async.query_string"
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 196
      StackMap locals:
      StackMap stack:
            aload 1 /* servletContext */
            aload 2 /* path */
            invokeinterface javax.servlet.ServletContext.getRequestDispatcher:(Ljava/lang/String;)Ljavax/servlet/RequestDispatcher;
            astore 4 /* requestDispatcher */
        start local 4 // javax.servlet.RequestDispatcher requestDispatcher
        15: .line 197
            aload 4 /* requestDispatcher */
            instanceof org.apache.catalina.AsyncDispatcher
            ifne 19
        16: .line 198
            new java.lang.UnsupportedOperationException
            dup
        17: .line 199
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "asyncContextImpl.noAsyncDispatcher"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
        18: .line 198
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 202
      StackMap locals: javax.servlet.RequestDispatcher
      StackMap stack:
            aload 4 /* requestDispatcher */
            checkcast org.apache.catalina.AsyncDispatcher
        20: .line 201
            astore 5 /* applicationDispatcher */
        start local 5 // org.apache.catalina.AsyncDispatcher applicationDispatcher
        21: .line 203
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.getRequest:()Ljavax/servlet/ServletRequest;
            astore 6 /* servletRequest */
        start local 6 // javax.servlet.ServletRequest servletRequest
        22: .line 204
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.getResponse:()Ljavax/servlet/ServletResponse;
            astore 7 /* servletResponse */
        start local 7 // javax.servlet.ServletResponse servletResponse
        23: .line 209
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            astore 8 /* context */
        start local 8 // org.apache.catalina.Context context
        24: .line 210
            aload 0 /* this */
            new org.apache.catalina.core.AsyncContextImpl$AsyncRunnable
            dup
        25: .line 211
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            aload 5 /* applicationDispatcher */
            aload 6 /* servletRequest */
            aload 7 /* servletResponse */
            invokespecial org.apache.catalina.core.AsyncContextImpl$AsyncRunnable.<init>:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/AsyncDispatcher;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
        26: .line 210
            putfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
        27: .line 212
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ActionCode.ASYNC_DISPATCH:Lorg/apache/coyote/ActionCode;
            aconst_null
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
        28: .line 213
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.clearServletRequestResponse:()V
        29: .line 214
            aload 8 /* context */
            invokeinterface org.apache.catalina.Context.decrementInProgressAsyncCount:()V
        end local 8 // org.apache.catalina.Context context
        end local 7 // javax.servlet.ServletResponse servletResponse
        end local 6 // javax.servlet.ServletRequest servletRequest
        end local 5 // org.apache.catalina.AsyncDispatcher applicationDispatcher
        end local 4 // javax.servlet.RequestDispatcher requestDispatcher
        30: .line 180
            aload 3
            monitorexit
        31: goto 34
      StackMap locals: org.apache.catalina.core.AsyncContextImpl javax.servlet.ServletContext java.lang.String java.lang.Object
      StackMap stack: java.lang.Throwable
        32: aload 3
            monitorexit
        33: athrow
        34: .line 216
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String path
        end local 1 // javax.servlet.ServletContext servletContext
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   35     0                   this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   35     1         servletContext  Ljavax/servlet/ServletContext;
            0   35     2                   path  Ljava/lang/String;
           15   30     4      requestDispatcher  Ljavax/servlet/RequestDispatcher;
           21   30     5  applicationDispatcher  Lorg/apache/catalina/AsyncDispatcher;
           22   30     6         servletRequest  Ljavax/servlet/ServletRequest;
           23   30     7        servletResponse  Ljavax/servlet/ServletResponse;
           24   30     8                context  Lorg/apache/catalina/Context;
      Exception table:
        from    to  target  type
           1    31      32  any
          32    33      32  any
    MethodParameters:
                Name  Flags
      servletContext  
      path            

  public javax.servlet.ServletRequest getRequest();
    descriptor: ()Ljavax/servlet/ServletRequest;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 220
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 221
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljavax/servlet/ServletRequest;
            ifnonnull 5
         2: .line 222
            new java.lang.IllegalStateException
            dup
         3: .line 223
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "asyncContextImpl.request.ise"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         4: .line 222
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljavax/servlet/ServletRequest;
            areturn
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/core/AsyncContextImpl;

  public javax.servlet.ServletResponse getResponse();
    descriptor: ()Ljavax/servlet/ServletResponse;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 230
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 231
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljavax/servlet/ServletResponse;
            ifnonnull 5
         2: .line 232
            new java.lang.IllegalStateException
            dup
         3: .line 233
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "asyncContextImpl.response.ise"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         4: .line 232
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljavax/servlet/ServletResponse;
            areturn
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/core/AsyncContextImpl;

  public void start(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // java.lang.Runnable run
         0: .line 240
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 241
            aload 0 /* this */
            ldc "start      "
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         2: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         3: .line 244
            new org.apache.catalina.core.AsyncContextImpl$RunnableWrapper
            dup
            aload 1 /* run */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            invokespecial org.apache.catalina.core.AsyncContextImpl$RunnableWrapper.<init>:(Ljava/lang/Runnable;Lorg/apache/catalina/Context;Lorg/apache/coyote/Request;)V
            astore 2 /* wrapper */
        start local 2 // java.lang.Runnable wrapper
         4: .line 245
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ActionCode.ASYNC_RUN:Lorg/apache/coyote/ActionCode;
            aload 2 /* wrapper */
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         5: .line 246
            return
        end local 2 // java.lang.Runnable wrapper
        end local 1 // java.lang.Runnable run
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/apache/catalina/core/AsyncContextImpl;
            0    6     1      run  Ljava/lang/Runnable;
            4    6     2  wrapper  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      run   final

  public void addListener(javax.servlet.AsyncListener);
    descriptor: (Ljavax/servlet/AsyncListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // javax.servlet.AsyncListener listener
         0: .line 250
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 251
            new org.apache.catalina.core.AsyncListenerWrapper
            dup
            invokespecial org.apache.catalina.core.AsyncListenerWrapper.<init>:()V
            astore 2 /* wrapper */
        start local 2 // org.apache.catalina.core.AsyncListenerWrapper wrapper
         2: .line 252
            aload 2 /* wrapper */
            aload 1 /* listener */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.setListener:(Ljavax/servlet/AsyncListener;)V
         3: .line 253
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            aload 2 /* wrapper */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 254
            return
        end local 2 // org.apache.catalina.core.AsyncListenerWrapper wrapper
        end local 1 // javax.servlet.AsyncListener listener
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/catalina/core/AsyncContextImpl;
            0    5     1  listener  Ljavax/servlet/AsyncListener;
            2    5     2   wrapper  Lorg/apache/catalina/core/AsyncListenerWrapper;
    MethodParameters:
          Name  Flags
      listener  

  public void addListener(javax.servlet.AsyncListener, javax.servlet.ServletRequest, javax.servlet.ServletResponse);
    descriptor: (Ljavax/servlet/AsyncListener;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // javax.servlet.AsyncListener listener
        start local 2 // javax.servlet.ServletRequest servletRequest
        start local 3 // javax.servlet.ServletResponse servletResponse
         0: .line 259
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 260
            new org.apache.catalina.core.AsyncListenerWrapper
            dup
            invokespecial org.apache.catalina.core.AsyncListenerWrapper.<init>:()V
            astore 4 /* wrapper */
        start local 4 // org.apache.catalina.core.AsyncListenerWrapper wrapper
         2: .line 261
            aload 4 /* wrapper */
            aload 1 /* listener */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.setListener:(Ljavax/servlet/AsyncListener;)V
         3: .line 262
            aload 4 /* wrapper */
            aload 2 /* servletRequest */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.setServletRequest:(Ljavax/servlet/ServletRequest;)V
         4: .line 263
            aload 4 /* wrapper */
            aload 3 /* servletResponse */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.setServletResponse:(Ljavax/servlet/ServletResponse;)V
         5: .line 264
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            aload 4 /* wrapper */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 265
            return
        end local 4 // org.apache.catalina.core.AsyncListenerWrapper wrapper
        end local 3 // javax.servlet.ServletResponse servletResponse
        end local 2 // javax.servlet.ServletRequest servletRequest
        end local 1 // javax.servlet.AsyncListener listener
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/catalina/core/AsyncContextImpl;
            0    7     1         listener  Ljavax/servlet/AsyncListener;
            0    7     2   servletRequest  Ljavax/servlet/ServletRequest;
            0    7     3  servletResponse  Ljavax/servlet/ServletResponse;
            2    7     4          wrapper  Lorg/apache/catalina/core/AsyncListenerWrapper;
    MethodParameters:
                 Name  Flags
      listener         
      servletRequest   
      servletResponse  

  public <T extends javax.servlet.AsyncListener> T createListener(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljavax/servlet/AsyncListener;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // java.lang.Class clazz
         0: .line 271
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 272
            aconst_null
            astore 2 /* listener */
        start local 2 // javax.servlet.AsyncListener listener
         2: .line 274
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getInstanceManager:()Lorg/apache/tomcat/InstanceManager;
         3: .line 275
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         4: .line 274
            invokeinterface org.apache.tomcat.InstanceManager.newInstance:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            checkcast javax.servlet.AsyncListener
            astore 2 /* listener */
         5: .line 276
            goto 13
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Class javax.servlet.AsyncListener
      StackMap stack: java.lang.Exception
         6: astore 3 /* e */
        start local 3 // java.lang.Exception e
         7: .line 277
            new javax.servlet.ServletException
            dup
            aload 3 /* e */
            invokespecial javax.servlet.ServletException.<init>:(Ljava/lang/Throwable;)V
            astore 4 /* se */
        start local 4 // javax.servlet.ServletException se
         8: .line 278
            aload 4 /* se */
            athrow
        end local 4 // javax.servlet.ServletException se
        end local 3 // java.lang.Exception e
         9: .line 279
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        10: .line 280
            aload 3 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        11: .line 281
            new javax.servlet.ServletException
            dup
            aload 3 /* e */
            invokespecial javax.servlet.ServletException.<init>:(Ljava/lang/Throwable;)V
            astore 4 /* se */
        start local 4 // javax.servlet.ServletException se
        12: .line 282
            aload 4 /* se */
            athrow
        end local 4 // javax.servlet.ServletException se
        end local 3 // java.lang.Exception e
        13: .line 284
      StackMap locals:
      StackMap stack:
            aload 2 /* listener */
            areturn
        end local 2 // javax.servlet.AsyncListener listener
        end local 1 // java.lang.Class clazz
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   14     1     clazz  Ljava/lang/Class<TT;>;
            2   14     2  listener  TT;
            7    9     3         e  Ljava/lang/Exception;
            8    9     4        se  Ljavax/servlet/ServletException;
           10   13     3         e  Ljava/lang/Exception;
           12   13     4        se  Ljavax/servlet/ServletException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.ReflectiveOperationException
           2     5       6  Class javax.naming.NamingException
           2     5       9  Class java.lang.Exception
    Exceptions:
      throws javax.servlet.ServletException
    Signature: <T::Ljavax/servlet/AsyncListener;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      clazz  

  public void recycle();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 288
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 289
            aload 0 /* this */
            ldc "recycle    "
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         2: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
         3: .line 292
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
         4: .line 293
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
         5: .line 294
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.core.AsyncContextImpl.hasOriginalRequestAndResponse:Z
         6: .line 295
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         7: .line 296
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
         8: .line 297
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.clearServletRequestResponse:()V
         9: .line 298
            aload 0 /* this */
            ldc -1
            putfield org.apache.catalina.core.AsyncContextImpl.timeout:J
        10: .line 299
            return
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/apache/catalina/core/AsyncContextImpl;

  private void clearServletRequestResponse();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 302
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljavax/servlet/ServletRequest;
         1: .line 303
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljavax/servlet/ServletResponse;
         2: .line 304
            return
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/core/AsyncContextImpl;

  public boolean isStarted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 307
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 1 /* result */
        start local 1 // java.util.concurrent.atomic.AtomicBoolean result
         1: .line 308
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
         2: .line 309
            getstatic org.apache.coyote.ActionCode.ASYNC_IS_STARTED:Lorg/apache/coyote/ActionCode;
            aload 1 /* result */
         3: .line 308
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         4: .line 310
            aload 1 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ireturn
        end local 1 // java.util.concurrent.atomic.AtomicBoolean result
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/apache/catalina/core/AsyncContextImpl;
            1    5     1  result  Ljava/util/concurrent/atomic/AtomicBoolean;

  public void setStarted(org.apache.catalina.Context, javax.servlet.ServletRequest, javax.servlet.ServletResponse, boolean);
    descriptor: (Lorg/apache/catalina/Context;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // org.apache.catalina.Context context
        start local 2 // javax.servlet.ServletRequest request
        start local 3 // javax.servlet.ServletResponse response
        start local 4 // boolean originalRequestResponse
         0: .line 316
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.asyncContextLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         1: .line 317
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
         2: .line 318
            getstatic org.apache.coyote.ActionCode.ASYNC_START:Lorg/apache/coyote/ActionCode;
            aload 0 /* this */
         3: .line 317
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         4: .line 320
            aload 0 /* this */
            aload 1 /* context */
            putfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
         5: .line 321
            aload 1 /* context */
            invokeinterface org.apache.catalina.Context.incrementInProgressAsyncCount:()V
         6: .line 322
            aload 0 /* this */
            aload 2 /* request */
            putfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljavax/servlet/ServletRequest;
         7: .line 323
            aload 0 /* this */
            aload 3 /* response */
            putfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljavax/servlet/ServletResponse;
         8: .line 324
            aload 0 /* this */
            iload 4 /* originalRequestResponse */
            putfield org.apache.catalina.core.AsyncContextImpl.hasOriginalRequestAndResponse:Z
         9: .line 325
            aload 0 /* this */
            new javax.servlet.AsyncEvent
            dup
            aload 0 /* this */
            aload 2 /* request */
            aload 3 /* response */
            invokespecial javax.servlet.AsyncEvent.<init>:(Ljavax/servlet/AsyncContext;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
            putfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
        10: .line 327
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* listenersCopy */
        start local 6 // java.util.List listenersCopy
        11: .line 328
            aload 6 /* listenersCopy */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        12: .line 329
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        13: .line 330
            aload 6 /* listenersCopy */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 24
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.Context javax.servlet.ServletRequest javax.servlet.ServletResponse int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.core.AsyncListenerWrapper
            astore 7 /* listener */
        start local 7 // org.apache.catalina.core.AsyncListenerWrapper listener
        15: .line 332
            aload 7 /* listener */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.fireOnStartAsync:(Ljavax/servlet/AsyncEvent;)V
        16: .line 333
            goto 24
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.Context javax.servlet.ServletRequest javax.servlet.ServletResponse int java.lang.Object java.util.List org.apache.catalina.core.AsyncListenerWrapper java.util.Iterator
      StackMap stack: java.lang.Throwable
        17: astore 9 /* t */
        start local 9 // java.lang.Throwable t
        18: .line 334
            aload 9 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        19: .line 335
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "asyncContextImpl.onStartAsyncError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        20: .line 336
            aload 7 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        21: .line 335
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        22: .line 336
            aload 9 /* t */
        23: .line 335
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 9 // java.lang.Throwable t
        end local 7 // org.apache.catalina.core.AsyncListenerWrapper listener
        24: .line 330
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.Context javax.servlet.ServletRequest javax.servlet.ServletResponse int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 6 // java.util.List listenersCopy
        25: .line 316
            aload 5
            monitorexit
        26: goto 29
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.Context javax.servlet.ServletRequest javax.servlet.ServletResponse int java.lang.Object
      StackMap stack: java.lang.Throwable
        27: aload 5
            monitorexit
        28: athrow
        29: .line 340
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean originalRequestResponse
        end local 3 // javax.servlet.ServletResponse response
        end local 2 // javax.servlet.ServletRequest request
        end local 1 // org.apache.catalina.Context context
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   30     0                     this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   30     1                  context  Lorg/apache/catalina/Context;
            0   30     2                  request  Ljavax/servlet/ServletRequest;
            0   30     3                 response  Ljavax/servlet/ServletResponse;
            0   30     4  originalRequestResponse  Z
           11   25     6            listenersCopy  Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;
           15   24     7                 listener  Lorg/apache/catalina/core/AsyncListenerWrapper;
           18   24     9                        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    16      17  Class java.lang.Throwable
           1    26      27  any
          27    28      27  any
    MethodParameters:
                         Name  Flags
      context                  
      request                  
      response                 
      originalRequestResponse  

  public boolean hasOriginalRequestAndResponse();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 344
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 345
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.hasOriginalRequestAndResponse:Z
            ireturn
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/core/AsyncContextImpl;

  protected void doInternalDispatch();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 349
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 350
            aload 0 /* this */
            ldc "intDispatch"
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         2: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
            astore 1 /* runnable */
        start local 1 // java.lang.Runnable runnable
         3: .line 354
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
         4: .line 355
            aload 1 /* runnable */
            invokeinterface java.lang.Runnable.run:()V
         5: .line 356
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.isAsync:()Z
            ifne 14
         6: .line 357
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.fireOnComplete:()V
        end local 1 // java.lang.Runnable runnable
         7: .line 359
            goto 14
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         8: astore 1 /* x */
        start local 1 // java.lang.RuntimeException x
         9: .line 361
            aload 1 /* x */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            instanceof javax.servlet.ServletException
            ifeq 11
        10: .line 362
            aload 1 /* x */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            checkcast javax.servlet.ServletException
            athrow
        11: .line 364
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 1 /* x */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            instanceof java.io.IOException
            ifeq 13
        12: .line 365
            aload 1 /* x */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            checkcast java.io.IOException
            athrow
        13: .line 367
      StackMap locals:
      StackMap stack:
            new javax.servlet.ServletException
            dup
            aload 1 /* x */
            invokespecial javax.servlet.ServletException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.RuntimeException x
        14: .line 369
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lorg/apache/catalina/core/AsyncContextImpl;
            3    7     1  runnable  Ljava/lang/Runnable;
            9   14     1         x  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           2     7       8  Class java.lang.RuntimeException
    Exceptions:
      throws javax.servlet.ServletException, java.io.IOException

  public long getTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 374
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 375
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.timeout:J
            lreturn
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/core/AsyncContextImpl;

  public void setTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // long timeout
         0: .line 381
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 382
            aload 0 /* this */
            lload 1 /* timeout */
            putfield org.apache.catalina.core.AsyncContextImpl.timeout:J
         2: .line 383
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ActionCode.ASYNC_SETTIMEOUT:Lorg/apache/coyote/ActionCode;
         3: .line 384
            lload 1 /* timeout */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
         4: .line 383
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         5: .line 385
            return
        end local 1 // long timeout
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/apache/catalina/core/AsyncContextImpl;
            0    6     1  timeout  J
    MethodParameters:
         Name  Flags
      timeout  

  public boolean isAvailable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 391
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            astore 1 /* context */
        start local 1 // org.apache.catalina.Context context
         1: .line 392
            aload 1 /* context */
            ifnonnull 3
         2: .line 393
            iconst_0
            ireturn
         3: .line 395
      StackMap locals: org.apache.catalina.Context
      StackMap stack:
            aload 1 /* context */
            invokeinterface org.apache.catalina.Context.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ireturn
        end local 1 // org.apache.catalina.Context context
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/apache/catalina/core/AsyncContextImpl;
            1    4     1  context  Lorg/apache/catalina/Context;

  public void setErrorState(java.lang.Throwable, boolean);
    descriptor: (Ljava/lang/Throwable;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // java.lang.Throwable t
        start local 2 // boolean fireOnError
         0: .line 400
            aload 1 /* t */
            ifnull 1
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "javax.servlet.error.exception"
            aload 1 /* t */
            invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ActionCode.ASYNC_ERROR:Lorg/apache/coyote/ActionCode;
            aconst_null
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         2: .line 403
            iload 2 /* fireOnError */
            ifeq 20
         3: .line 404
            new javax.servlet.AsyncEvent
            dup
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
            invokevirtual javax.servlet.AsyncEvent.getAsyncContext:()Ljavax/servlet/AsyncContext;
         4: .line 405
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
            invokevirtual javax.servlet.AsyncEvent.getSuppliedRequest:()Ljavax/servlet/ServletRequest;
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljavax/servlet/AsyncEvent;
            invokevirtual javax.servlet.AsyncEvent.getSuppliedResponse:()Ljavax/servlet/ServletResponse;
            aload 1 /* t */
         5: .line 404
            invokespecial javax.servlet.AsyncEvent.<init>:(Ljavax/servlet/AsyncContext;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Throwable;)V
            astore 3 /* errorEvent */
        start local 3 // javax.servlet.AsyncEvent errorEvent
         6: .line 406
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* listenersCopy */
        start local 4 // java.util.List listenersCopy
         7: .line 407
            aload 4 /* listenersCopy */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 408
            aload 4 /* listenersCopy */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 19
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Throwable int javax.servlet.AsyncEvent java.util.List top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.core.AsyncListenerWrapper
            astore 5 /* listener */
        start local 5 // org.apache.catalina.core.AsyncListenerWrapper listener
        10: .line 410
            aload 5 /* listener */
            aload 3 /* errorEvent */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.fireOnError:(Ljavax/servlet/AsyncEvent;)V
        11: .line 411
            goto 19
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Throwable int javax.servlet.AsyncEvent java.util.List org.apache.catalina.core.AsyncListenerWrapper java.util.Iterator
      StackMap stack: java.lang.Throwable
        12: astore 7 /* t2 */
        start local 7 // java.lang.Throwable t2
        13: .line 412
            aload 7 /* t2 */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        14: .line 413
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "asyncContextImpl.onErrorError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        15: .line 414
            aload 5 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        16: .line 413
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        17: .line 414
            aload 7 /* t2 */
        18: .line 413
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.lang.Throwable t2
        end local 5 // org.apache.catalina.core.AsyncListenerWrapper listener
        19: .line 408
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Throwable int javax.servlet.AsyncEvent java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 4 // java.util.List listenersCopy
        end local 3 // javax.servlet.AsyncEvent errorEvent
        20: .line 420
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Throwable int
      StackMap stack:
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.concurrent.atomic.AtomicBoolean result
        21: .line 421
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            getstatic org.apache.coyote.ActionCode.ASYNC_IS_ERROR:Lorg/apache/coyote/ActionCode;
            aload 3 /* result */
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
        22: .line 422
            aload 3 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 39
        23: .line 428
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljavax/servlet/ServletResponse;
            astore 4 /* servletResponse */
        start local 4 // javax.servlet.ServletResponse servletResponse
        24: .line 429
            aload 4 /* servletResponse */
            instanceof javax.servlet.http.HttpServletResponse
            ifeq 28
        25: .line 430
            aload 4 /* servletResponse */
            checkcast javax.servlet.http.HttpServletResponse
        26: .line 431
            sipush 500
        27: .line 430
            invokeinterface javax.servlet.http.HttpServletResponse.setStatus:(I)V
        28: .line 434
      StackMap locals: java.util.concurrent.atomic.AtomicBoolean javax.servlet.ServletResponse
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            checkcast org.apache.catalina.Host
            astore 5 /* host */
        start local 5 // org.apache.catalina.Host host
        29: .line 435
            aload 5 /* host */
            invokeinterface org.apache.catalina.Host.getPipeline:()Lorg/apache/catalina/Pipeline;
            invokeinterface org.apache.catalina.Pipeline.getBasic:()Lorg/apache/catalina/Valve;
            astore 6 /* stdHostValve */
        start local 6 // org.apache.catalina.Valve stdHostValve
        30: .line 436
            aload 6 /* stdHostValve */
            instanceof org.apache.catalina.core.StandardHostValve
            ifeq 34
        31: .line 437
            aload 6 /* stdHostValve */
            checkcast org.apache.catalina.core.StandardHostValve
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
        32: .line 438
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getResponse:()Lorg/apache/catalina/connector/Response;
            aload 1 /* t */
        33: .line 437
            invokevirtual org.apache.catalina.core.StandardHostValve.throwable:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;Ljava/lang/Throwable;)V
        34: .line 441
      StackMap locals: org.apache.catalina.Host org.apache.catalina.Valve
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
        35: .line 442
            getstatic org.apache.coyote.ActionCode.ASYNC_IS_ERROR:Lorg/apache/coyote/ActionCode;
            aload 3 /* result */
        36: .line 441
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
        37: .line 443
            aload 3 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 39
        38: .line 446
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.complete:()V
        end local 6 // org.apache.catalina.Valve stdHostValve
        end local 5 // org.apache.catalina.Host host
        end local 4 // javax.servlet.ServletResponse servletResponse
        39: .line 449
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.concurrent.atomic.AtomicBoolean result
        end local 2 // boolean fireOnError
        end local 1 // java.lang.Throwable t
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   40     0             this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   40     1                t  Ljava/lang/Throwable;
            0   40     2      fireOnError  Z
            6   20     3       errorEvent  Ljavax/servlet/AsyncEvent;
            7   20     4    listenersCopy  Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;
           10   19     5         listener  Lorg/apache/catalina/core/AsyncListenerWrapper;
           13   19     7               t2  Ljava/lang/Throwable;
           21   40     3           result  Ljava/util/concurrent/atomic/AtomicBoolean;
           24   39     4  servletResponse  Ljavax/servlet/ServletResponse;
           29   39     5             host  Lorg/apache/catalina/Host;
           30   39     6     stdHostValve  Lorg/apache/catalina/Valve;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.Throwable
    MethodParameters:
             Name  Flags
      t            
      fireOnError  

  private void logDebug(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
        start local 1 // java.lang.String method
         0: .line 457
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* uri */
        start local 6 // java.lang.StringBuilder uri
         1: .line 458
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ifnonnull 8
         2: .line 459
            ldc "null"
            astore 2 /* rHashCode */
        start local 2 // java.lang.String rHashCode
         3: .line 460
            ldc "null"
            astore 3 /* crHashCode */
        start local 3 // java.lang.String crHashCode
         4: .line 461
            ldc "null"
            astore 4 /* rpHashCode */
        start local 4 // java.lang.String rpHashCode
         5: .line 462
            ldc "-"
            astore 5 /* stage */
        start local 5 // java.lang.String stage
         6: .line 463
            aload 6 /* uri */
            ldc "N/A"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 464
            goto 27
        end local 5 // java.lang.String stage
        end local 4 // java.lang.String rpHashCode
        end local 3 // java.lang.String crHashCode
        end local 2 // java.lang.String rHashCode
         8: .line 465
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.String top top top top java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 2 /* rHashCode */
        start local 2 // java.lang.String rHashCode
         9: .line 466
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
            astore 7 /* coyoteRequest */
        start local 7 // org.apache.coyote.Request coyoteRequest
        10: .line 467
            aload 7 /* coyoteRequest */
            ifnonnull 15
        11: .line 468
            ldc "null"
            astore 3 /* crHashCode */
        start local 3 // java.lang.String crHashCode
        12: .line 469
            ldc "null"
            astore 4 /* rpHashCode */
        start local 4 // java.lang.String rpHashCode
        13: .line 470
            ldc "-"
            astore 5 /* stage */
        start local 5 // java.lang.String stage
        14: .line 471
            goto 23
        end local 5 // java.lang.String stage
        end local 4 // java.lang.String rpHashCode
        end local 3 // java.lang.String crHashCode
        15: .line 472
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.String java.lang.String top top top java.lang.StringBuilder org.apache.coyote.Request
      StackMap stack:
            aload 7 /* coyoteRequest */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 3 /* crHashCode */
        start local 3 // java.lang.String crHashCode
        16: .line 473
            aload 7 /* coyoteRequest */
            invokevirtual org.apache.coyote.Request.getRequestProcessor:()Lorg/apache/coyote/RequestInfo;
            astore 8 /* rp */
        start local 8 // org.apache.coyote.RequestInfo rp
        17: .line 474
            aload 8 /* rp */
            ifnonnull 21
        18: .line 475
            ldc "null"
            astore 4 /* rpHashCode */
        start local 4 // java.lang.String rpHashCode
        19: .line 476
            ldc "-"
            astore 5 /* stage */
        start local 5 // java.lang.String stage
        20: .line 477
            goto 23
        end local 5 // java.lang.String stage
        end local 4 // java.lang.String rpHashCode
        21: .line 478
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.String java.lang.String java.lang.String top top java.lang.StringBuilder org.apache.coyote.Request org.apache.coyote.RequestInfo
      StackMap stack:
            aload 8 /* rp */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 4 /* rpHashCode */
        start local 4 // java.lang.String rpHashCode
        22: .line 479
            aload 8 /* rp */
            invokevirtual org.apache.coyote.RequestInfo.getStage:()I
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            astore 5 /* stage */
        end local 8 // org.apache.coyote.RequestInfo rp
        start local 5 // java.lang.String stage
        23: .line 482
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.StringBuilder org.apache.coyote.Request
      StackMap stack:
            aload 6 /* uri */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 483
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
            ifnull 27
        25: .line 484
            aload 6 /* uri */
            bipush 63
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 485
            aload 6 /* uri */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            invokevirtual org.apache.catalina.connector.Request.getQueryString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 7 // org.apache.coyote.Request coyoteRequest
        27: .line 488
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            astore 7 /* threadName */
        start local 7 // java.lang.String threadName
        28: .line 489
            aload 7 /* threadName */
            invokevirtual java.lang.String.length:()I
            istore 8 /* len */
        start local 8 // int len
        29: .line 490
            iload 8 /* len */
            bipush 20
            if_icmple 31
        30: .line 491
            aload 7 /* threadName */
            iload 8 /* len */
            bipush 20
            isub
            iload 8 /* len */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* threadName */
        31: .line 494
      StackMap locals: java.lang.String int
      StackMap stack:
            ldc "Req: %1$8s  CReq: %2$8s  RP: %3$8s  Stage: %4$s  Thread: %5$20s  State: %6$20s  Method: %7$11s  URI: %8$s"
            bipush 8
            anewarray java.lang.Object
            dup
            iconst_0
        32: .line 496
            aload 2 /* rHashCode */
            aastore
            dup
            iconst_1
            aload 3 /* crHashCode */
            aastore
            dup
            iconst_2
            aload 4 /* rpHashCode */
            aastore
            dup
            iconst_3
            aload 5 /* stage */
            aastore
            dup
            iconst_4
        33: .line 497
            aload 7 /* threadName */
            aastore
            dup
            iconst_5
            ldc "N/A"
            aastore
            dup
            bipush 6
            aload 1 /* method */
            aastore
            dup
            bipush 7
            aload 6 /* uri */
            aastore
        34: .line 493
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 9 /* msg */
        start local 9 // java.lang.String msg
        35: .line 498
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 38
        36: .line 499
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            aload 9 /* msg */
            new org.apache.catalina.core.AsyncContextImpl$DebugException
            dup
            invokespecial org.apache.catalina.core.AsyncContextImpl$DebugException.<init>:()V
            invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        37: .line 500
            goto 39
        38: .line 501
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            aload 9 /* msg */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        39: .line 503
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.lang.String msg
        end local 8 // int len
        end local 7 // java.lang.String threadName
        end local 6 // java.lang.StringBuilder uri
        end local 5 // java.lang.String stage
        end local 4 // java.lang.String rpHashCode
        end local 3 // java.lang.String crHashCode
        end local 2 // java.lang.String rHashCode
        end local 1 // java.lang.String method
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   40     0           this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   40     1         method  Ljava/lang/String;
            3    8     2      rHashCode  Ljava/lang/String;
            9   40     2      rHashCode  Ljava/lang/String;
            4    8     3     crHashCode  Ljava/lang/String;
           12   15     3     crHashCode  Ljava/lang/String;
           16   40     3     crHashCode  Ljava/lang/String;
            5    8     4     rpHashCode  Ljava/lang/String;
           13   15     4     rpHashCode  Ljava/lang/String;
           19   21     4     rpHashCode  Ljava/lang/String;
           22   40     4     rpHashCode  Ljava/lang/String;
            6    8     5          stage  Ljava/lang/String;
           14   15     5          stage  Ljava/lang/String;
           20   21     5          stage  Ljava/lang/String;
           23   40     5          stage  Ljava/lang/String;
            1   40     6            uri  Ljava/lang/StringBuilder;
           10   27     7  coyoteRequest  Lorg/apache/coyote/Request;
           17   23     8             rp  Lorg/apache/coyote/RequestInfo;
           28   40     7     threadName  Ljava/lang/String;
           29   40     8            len  I
           35   40     9            msg  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      method  

  private void check();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 506
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ifnonnull 4
         1: .line 508
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 509
            ldc "asyncContextImpl.requestEnded"
         3: .line 508
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 511
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/catalina/core/AsyncContextImpl;
}
SourceFile: "AsyncContextImpl.java"
NestMembers:
  org.apache.catalina.core.AsyncContextImpl$AsyncRunnable  org.apache.catalina.core.AsyncContextImpl$DebugException  org.apache.catalina.core.AsyncContextImpl$RunnableWrapper
InnerClasses:
  private AsyncRunnable = org.apache.catalina.core.AsyncContextImpl$AsyncRunnable of org.apache.catalina.core.AsyncContextImpl
  private DebugException = org.apache.catalina.core.AsyncContextImpl$DebugException of org.apache.catalina.core.AsyncContextImpl
  private RunnableWrapper = org.apache.catalina.core.AsyncContextImpl$RunnableWrapper of org.apache.catalina.core.AsyncContextImpl