public class org.apache.catalina.core.AsyncContextImpl implements jakarta.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 jakarta.servlet.ServletRequest servletRequest;
    descriptor: Ljakarta/servlet/ServletRequest;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile jakarta.servlet.ServletResponse servletResponse;
    descriptor: Ljakarta/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 jakarta.servlet.AsyncEvent event;
    descriptor: Ljakarta/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 55
            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 58
            ldc "org.apache.catalina.core"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         2: .line 57
            putstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
         3: .line 58
            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 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            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 69
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljakarta/servlet/ServletRequest;
         3: .line 70
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljakarta/servlet/ServletResponse;
         4: .line 71
            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 72
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.core.AsyncContextImpl.hasOriginalRequestAndResponse:Z
         6: .line 73
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
         7: .line 74
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
         8: .line 76
            aload 0 /* this */
            ldc -1
            putfield org.apache.catalina.core.AsyncContextImpl.timeout:J
         9: .line 77
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
        10: .line 81
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 12
        11: .line 82
            aload 0 /* this */
            ldc "Constructor"
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
        12: .line 84
      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 85
            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 89
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 90
            aload 0 /* this */
            ldc "complete   "
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         2: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         3: .line 93
            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 94
            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 98
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 99
            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.fireOnComplete"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
         2: .line 101
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* listenersCopy */
        start local 1 // java.util.List listenersCopy
         3: .line 103
            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
         4: .line 105
            aload 1 /* listenersCopy */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.List java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
         5: 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
         6: .line 107
            aload 3 /* listener */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.fireOnComplete:(Ljakarta/servlet/AsyncEvent;)V
         7: .line 108
            goto 15
      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
         8: astore 5 /* t */
        start local 5 // java.lang.Throwable t
         9: .line 109
            aload 5 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        10: .line 110
            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
        11: .line 111
            aload 3 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        12: .line 110
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        13: .line 111
            aload 5 /* t */
        14: .line 110
            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
        15: .line 105
      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 5
        16: .line 114
            goto 22
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.List java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
        17: astore 6
        18: .line 115
            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:()Ljakarta/servlet/http/HttpServletRequest;
            invokeinterface org.apache.catalina.Context.fireRequestDestroyEvent:(Ljakarta/servlet/ServletRequest;)Z
            pop
        19: .line 116
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.clearServletRequestResponse:()V
        20: .line 117
            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 118
            aload 6
            athrow
        22: .line 115
      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:()Ljakarta/servlet/http/HttpServletRequest;
            invokeinterface org.apache.catalina.Context.fireRequestDestroyEvent:(Ljakarta/servlet/ServletRequest;)Z
            pop
        23: .line 116
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.clearServletRequestResponse:()V
        24: .line 117
            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
        25: .line 119
            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   26     0           this  Lorg/apache/catalina/core/AsyncContextImpl;
            3   26     1  listenersCopy  Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;
            4   26     2          oldCL  Ljava/lang/ClassLoader;
            6   15     3       listener  Lorg/apache/catalina/core/AsyncListenerWrapper;
            9   15     5              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.Throwable
           4    17      17  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 123
            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 124
            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 126
            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 128
            aload 1 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 28
         4: .line 129
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 6
         5: .line 130
            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.fireOnTimeout"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
         6: .line 132
      StackMap locals: java.util.concurrent.atomic.AtomicBoolean org.apache.catalina.Context
      StackMap stack:
            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
         7: .line 134
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* listenersCopy */
        start local 4 // java.util.List listenersCopy
         8: .line 135
            aload 4 /* listenersCopy */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 19
      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:
         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 137
            aload 5 /* listener */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.fireOnTimeout:(Ljakarta/servlet/AsyncEvent;)V
        11: .line 138
            goto 19
      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
        12: astore 7 /* t */
        start local 7 // java.lang.Throwable t
        13: .line 139
            aload 7 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        14: .line 140
            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
        15: .line 141
            aload 5 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        16: .line 140
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        17: .line 141
            aload 7 /* t */
        18: .line 140
            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
        19: .line 135
      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 9
        20: .line 144
            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;
        21: .line 145
            getstatic org.apache.coyote.ActionCode.ASYNC_IS_TIMINGOUT:Lorg/apache/coyote/ActionCode;
            aload 1 /* result */
        22: .line 144
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
        end local 4 // java.util.List listenersCopy
        23: .line 146
            goto 27
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.util.concurrent.atomic.AtomicBoolean org.apache.catalina.Context java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
        24: astore 8
        25: .line 147
            aload 2 /* context */
            iconst_0
            aload 3 /* oldCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
        26: .line 148
            aload 8
            athrow
        27: .line 147
      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
        28: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 29
            iconst_0
            goto 30
      StackMap locals:
      StackMap stack:
        29: iconst_1
      StackMap locals:
      StackMap stack: int
        30: 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   31     0           this  Lorg/apache/catalina/core/AsyncContextImpl;
            1   31     1         result  Ljava/util/concurrent/atomic/AtomicBoolean;
            3   31     2        context  Lorg/apache/catalina/Context;
            7   28     3          oldCL  Ljava/lang/ClassLoader;
            8   23     4  listenersCopy  Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;
           10   19     5       listener  Lorg/apache/catalina/core/AsyncListenerWrapper;
           13   19     7              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.Throwable
           7    24      24  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 155
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 158
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.getRequest:()Ljakarta/servlet/ServletRequest;
            astore 3 /* servletRequest */
        start local 3 // jakarta.servlet.ServletRequest servletRequest
         2: .line 159
            aload 3 /* servletRequest */
            instanceof jakarta.servlet.http.HttpServletRequest
            ifeq 7
         3: .line 160
            aload 3 /* servletRequest */
            checkcast jakarta.servlet.http.HttpServletRequest
            astore 4 /* sr */
        start local 4 // jakarta.servlet.http.HttpServletRequest sr
         4: .line 161
            aload 4 /* sr */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         5: .line 162
            aload 4 /* sr */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
            astore 2 /* cpath */
        end local 4 // jakarta.servlet.http.HttpServletRequest sr
        start local 2 // java.lang.String cpath
         6: .line 163
            goto 9
        end local 2 // java.lang.String cpath
        end local 1 // java.lang.String path
         7: .line 164
      StackMap locals: org.apache.catalina.core.AsyncContextImpl top top jakarta.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 165
            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 167
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.String java.lang.String jakarta.servlet.ServletRequest
      StackMap stack:
            aload 2 /* cpath */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 11
        10: .line 168
            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 170
      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 171
            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 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.dispatch:(Ljava/lang/String;)V
        14: .line 174
            return
        end local 3 // jakarta.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  Ljakarta/servlet/ServletRequest;
            4    6     4              sr  Ljakarta/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 178
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 179
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.getRequest:()Ljakarta/servlet/ServletRequest;
            invokeinterface jakarta.servlet.ServletRequest.getServletContext:()Ljakarta/servlet/ServletContext;
            aload 1 /* path */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.dispatch:(Ljakarta/servlet/ServletContext;Ljava/lang/String;)V
         2: .line 180
            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(jakarta.servlet.ServletContext, java.lang.String);
    descriptor: (Ljakarta/servlet/ServletContext;Ljava/lang/String;)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 // jakarta.servlet.ServletContext servletContext
        start local 2 // java.lang.String path
         0: .line 184
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.asyncContextLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 185
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 3
         2: .line 186
            aload 0 /* this */
            ldc "dispatch   "
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         3: .line 188
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         4: .line 189
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
            ifnull 8
         5: .line 190
            new java.lang.IllegalStateException
            dup
         6: .line 191
            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 190
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "jakarta.servlet.async.request_uri"
            invokevirtual org.apache.catalina.connector.Request.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 14
         9: .line 194
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "jakarta.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 195
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "jakarta.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 196
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "jakarta.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 197
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "jakarta.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 198
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ldc "jakarta.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 200
      StackMap locals:
      StackMap stack:
            aload 1 /* servletContext */
            aload 2 /* path */
            invokeinterface jakarta.servlet.ServletContext.getRequestDispatcher:(Ljava/lang/String;)Ljakarta/servlet/RequestDispatcher;
            astore 4 /* requestDispatcher */
        start local 4 // jakarta.servlet.RequestDispatcher requestDispatcher
        15: .line 201
            aload 4 /* requestDispatcher */
            instanceof org.apache.catalina.AsyncDispatcher
            ifne 19
        16: .line 202
            new java.lang.UnsupportedOperationException
            dup
        17: .line 203
            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 202
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 206
      StackMap locals: jakarta.servlet.RequestDispatcher
      StackMap stack:
            aload 4 /* requestDispatcher */
            checkcast org.apache.catalina.AsyncDispatcher
        20: .line 205
            astore 5 /* applicationDispatcher */
        start local 5 // org.apache.catalina.AsyncDispatcher applicationDispatcher
        21: .line 207
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.getRequest:()Ljakarta/servlet/ServletRequest;
            astore 6 /* servletRequest */
        start local 6 // jakarta.servlet.ServletRequest servletRequest
        22: .line 208
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.getResponse:()Ljakarta/servlet/ServletResponse;
            astore 7 /* servletResponse */
        start local 7 // jakarta.servlet.ServletResponse servletResponse
        23: .line 209
            aload 0 /* this */
            new org.apache.catalina.core.AsyncContextImpl$AsyncRunnable
            dup
        24: .line 210
            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;Ljakarta/servlet/ServletRequest;Ljakarta/servlet/ServletResponse;)V
        25: .line 209
            putfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
        26: .line 211
            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
        27: .line 212
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.clearServletRequestResponse:()V
        end local 7 // jakarta.servlet.ServletResponse servletResponse
        end local 6 // jakarta.servlet.ServletRequest servletRequest
        end local 5 // org.apache.catalina.AsyncDispatcher applicationDispatcher
        end local 4 // jakarta.servlet.RequestDispatcher requestDispatcher
        28: .line 184
            aload 3
            monitorexit
        29: goto 32
      StackMap locals: org.apache.catalina.core.AsyncContextImpl jakarta.servlet.ServletContext java.lang.String java.lang.Object
      StackMap stack: java.lang.Throwable
        30: aload 3
            monitorexit
        31: athrow
        32: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String path
        end local 1 // jakarta.servlet.ServletContext servletContext
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   33     0                   this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   33     1         servletContext  Ljakarta/servlet/ServletContext;
            0   33     2                   path  Ljava/lang/String;
           15   28     4      requestDispatcher  Ljakarta/servlet/RequestDispatcher;
           21   28     5  applicationDispatcher  Lorg/apache/catalina/AsyncDispatcher;
           22   28     6         servletRequest  Ljakarta/servlet/ServletRequest;
           23   28     7        servletResponse  Ljakarta/servlet/ServletResponse;
      Exception table:
        from    to  target  type
           1    29      30  any
          30    31      30  any
    MethodParameters:
                Name  Flags
      servletContext  
      path            

  public jakarta.servlet.ServletRequest getRequest();
    descriptor: ()Ljakarta/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 218
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 219
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljakarta/servlet/ServletRequest;
            ifnonnull 5
         2: .line 220
            new java.lang.IllegalStateException
            dup
         3: .line 221
            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 220
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljakarta/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 jakarta.servlet.ServletResponse getResponse();
    descriptor: ()Ljakarta/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 228
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 229
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljakarta/servlet/ServletResponse;
            ifnonnull 5
         2: .line 230
            new java.lang.IllegalStateException
            dup
         3: .line 231
            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 230
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljakarta/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 238
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 239
            aload 0 /* this */
            ldc "start      "
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         2: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         3: .line 242
            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 243
            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 244
            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(jakarta.servlet.AsyncListener);
    descriptor: (Ljakarta/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 // jakarta.servlet.AsyncListener listener
         0: .line 248
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 249
            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 250
            aload 2 /* wrapper */
            aload 1 /* listener */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.setListener:(Ljakarta/servlet/AsyncListener;)V
         3: .line 251
            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 252
            return
        end local 2 // org.apache.catalina.core.AsyncListenerWrapper wrapper
        end local 1 // jakarta.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  Ljakarta/servlet/AsyncListener;
            2    5     2   wrapper  Lorg/apache/catalina/core/AsyncListenerWrapper;
    MethodParameters:
          Name  Flags
      listener  

  public void addListener(jakarta.servlet.AsyncListener, jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse);
    descriptor: (Ljakarta/servlet/AsyncListener;Ljakarta/servlet/ServletRequest;Ljakarta/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 // jakarta.servlet.AsyncListener listener
        start local 2 // jakarta.servlet.ServletRequest servletRequest
        start local 3 // jakarta.servlet.ServletResponse servletResponse
         0: .line 257
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 258
            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 259
            aload 4 /* wrapper */
            aload 1 /* listener */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.setListener:(Ljakarta/servlet/AsyncListener;)V
         3: .line 260
            aload 4 /* wrapper */
            aload 2 /* servletRequest */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.setServletRequest:(Ljakarta/servlet/ServletRequest;)V
         4: .line 261
            aload 4 /* wrapper */
            aload 3 /* servletResponse */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.setServletResponse:(Ljakarta/servlet/ServletResponse;)V
         5: .line 262
            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 263
            return
        end local 4 // org.apache.catalina.core.AsyncListenerWrapper wrapper
        end local 3 // jakarta.servlet.ServletResponse servletResponse
        end local 2 // jakarta.servlet.ServletRequest servletRequest
        end local 1 // jakarta.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  Ljakarta/servlet/AsyncListener;
            0    7     2   servletRequest  Ljakarta/servlet/ServletRequest;
            0    7     3  servletResponse  Ljakarta/servlet/ServletResponse;
            2    7     4          wrapper  Lorg/apache/catalina/core/AsyncListenerWrapper;
    MethodParameters:
                 Name  Flags
      listener         
      servletRequest   
      servletResponse  

  public <T extends jakarta.servlet.AsyncListener> T createListener(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljakarta/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 269
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.check:()V
         1: .line 270
            aconst_null
            astore 2 /* listener */
        start local 2 // jakarta.servlet.AsyncListener listener
         2: .line 272
            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 273
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         4: .line 272
            invokeinterface org.apache.tomcat.InstanceManager.newInstance:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            checkcast jakarta.servlet.AsyncListener
            astore 2 /* listener */
         5: .line 274
            goto 13
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Class jakarta.servlet.AsyncListener
      StackMap stack: java.lang.Exception
         6: astore 3 /* e */
        start local 3 // java.lang.Exception e
         7: .line 275
            new jakarta.servlet.ServletException
            dup
            aload 3 /* e */
            invokespecial jakarta.servlet.ServletException.<init>:(Ljava/lang/Throwable;)V
            astore 4 /* se */
        start local 4 // jakarta.servlet.ServletException se
         8: .line 276
            aload 4 /* se */
            athrow
        end local 4 // jakarta.servlet.ServletException se
        end local 3 // java.lang.Exception e
         9: .line 277
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        10: .line 278
            aload 3 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        11: .line 279
            new jakarta.servlet.ServletException
            dup
            aload 3 /* e */
            invokespecial jakarta.servlet.ServletException.<init>:(Ljava/lang/Throwable;)V
            astore 4 /* se */
        start local 4 // jakarta.servlet.ServletException se
        12: .line 280
            aload 4 /* se */
            athrow
        end local 4 // jakarta.servlet.ServletException se
        end local 3 // java.lang.Exception e
        13: .line 282
      StackMap locals:
      StackMap stack:
            aload 2 /* listener */
            areturn
        end local 2 // jakarta.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  Ljakarta/servlet/ServletException;
           10   13     3         e  Ljava/lang/Exception;
           12   13     4        se  Ljakarta/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 jakarta.servlet.ServletException
    Signature: <T::Ljakarta/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 286
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 287
            aload 0 /* this */
            ldc "recycle    "
            invokevirtual org.apache.catalina.core.AsyncContextImpl.logDebug:(Ljava/lang/String;)V
         2: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
         3: .line 290
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.dispatch:Ljava/lang/Runnable;
         4: .line 291
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
         5: .line 292
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.core.AsyncContextImpl.hasOriginalRequestAndResponse:Z
         6: .line 293
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         7: .line 294
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
         8: .line 295
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.AsyncContextImpl.clearServletRequestResponse:()V
         9: .line 296
            aload 0 /* this */
            ldc -1
            putfield org.apache.catalina.core.AsyncContextImpl.timeout:J
        10: .line 297
            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 300
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljakarta/servlet/ServletRequest;
         1: .line 301
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljakarta/servlet/ServletResponse;
         2: .line 302
            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 305
            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 306
            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 307
            getstatic org.apache.coyote.ActionCode.ASYNC_IS_STARTED:Lorg/apache/coyote/ActionCode;
            aload 1 /* result */
         3: .line 306
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         4: .line 308
            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, jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse, boolean);
    descriptor: (Lorg/apache/catalina/Context;Ljakarta/servlet/ServletRequest;Ljakarta/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 // jakarta.servlet.ServletRequest request
        start local 3 // jakarta.servlet.ServletResponse response
        start local 4 // boolean originalRequestResponse
         0: .line 314
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.asyncContextLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         1: .line 315
            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 316
            getstatic org.apache.coyote.ActionCode.ASYNC_START:Lorg/apache/coyote/ActionCode;
            aload 0 /* this */
         3: .line 315
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
         4: .line 318
            aload 0 /* this */
            aload 1 /* context */
            putfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
         5: .line 319
            aload 1 /* context */
            invokeinterface org.apache.catalina.Context.incrementInProgressAsyncCount:()V
         6: .line 320
            aload 0 /* this */
            aload 2 /* request */
            putfield org.apache.catalina.core.AsyncContextImpl.servletRequest:Ljakarta/servlet/ServletRequest;
         7: .line 321
            aload 0 /* this */
            aload 3 /* response */
            putfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljakarta/servlet/ServletResponse;
         8: .line 322
            aload 0 /* this */
            iload 4 /* originalRequestResponse */
            putfield org.apache.catalina.core.AsyncContextImpl.hasOriginalRequestAndResponse:Z
         9: .line 323
            aload 0 /* this */
            new jakarta.servlet.AsyncEvent
            dup
            aload 0 /* this */
            aload 2 /* request */
            aload 3 /* response */
            invokespecial jakarta.servlet.AsyncEvent.<init>:(Ljakarta/servlet/AsyncContext;Ljakarta/servlet/ServletRequest;Ljakarta/servlet/ServletResponse;)V
            putfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
        10: .line 325
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 6 /* listenersCopy */
        start local 6 // java.util.List listenersCopy
        11: .line 326
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        12: .line 327
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 14
        13: .line 328
            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.fireOnStartAsync"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        14: .line 330
      StackMap locals: java.lang.Object java.util.List
      StackMap stack:
            aload 6 /* listenersCopy */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 25
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.Context jakarta.servlet.ServletRequest jakarta.servlet.ServletResponse int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
        15: 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
        16: .line 332
            aload 7 /* listener */
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.fireOnStartAsync:(Ljakarta/servlet/AsyncEvent;)V
        17: .line 333
            goto 25
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.Context jakarta.servlet.ServletRequest jakarta.servlet.ServletResponse int java.lang.Object java.util.List org.apache.catalina.core.AsyncListenerWrapper java.util.Iterator
      StackMap stack: java.lang.Throwable
        18: astore 9 /* t */
        start local 9 // java.lang.Throwable t
        19: .line 334
            aload 9 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        20: .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
        21: .line 336
            aload 7 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        22: .line 335
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        23: .line 336
            aload 9 /* t */
        24: .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
        25: .line 330
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.Context jakarta.servlet.ServletRequest jakarta.servlet.ServletResponse int java.lang.Object java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        end local 6 // java.util.List listenersCopy
        26: .line 314
            aload 5
            monitorexit
        27: goto 30
      StackMap locals: org.apache.catalina.core.AsyncContextImpl org.apache.catalina.Context jakarta.servlet.ServletRequest jakarta.servlet.ServletResponse int java.lang.Object
      StackMap stack: java.lang.Throwable
        28: aload 5
            monitorexit
        29: athrow
        30: .line 340
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean originalRequestResponse
        end local 3 // jakarta.servlet.ServletResponse response
        end local 2 // jakarta.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   31     0                     this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   31     1                  context  Lorg/apache/catalina/Context;
            0   31     2                  request  Ljakarta/servlet/ServletRequest;
            0   31     3                 response  Ljakarta/servlet/ServletResponse;
            0   31     4  originalRequestResponse  Z
           11   26     6            listenersCopy  Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;
           16   25     7                 listener  Lorg/apache/catalina/core/AsyncListenerWrapper;
           19   25     9                        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          16    17      18  Class java.lang.Throwable
           1    27      28  any
          28    29      28  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 jakarta.servlet.ServletException
            ifeq 11
        10: .line 362
            aload 1 /* x */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            checkcast jakarta.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 jakarta.servlet.ServletException
            dup
            aload 1 /* x */
            invokespecial jakarta.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 jakarta.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 "jakarta.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 21
         3: .line 404
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 5
         4: .line 405
            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.fireOnError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
         5: .line 407
      StackMap locals:
      StackMap stack:
            new jakarta.servlet.AsyncEvent
            dup
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
            invokevirtual jakarta.servlet.AsyncEvent.getAsyncContext:()Ljakarta/servlet/AsyncContext;
         6: .line 408
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
            invokevirtual jakarta.servlet.AsyncEvent.getSuppliedRequest:()Ljakarta/servlet/ServletRequest;
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.event:Ljakarta/servlet/AsyncEvent;
            invokevirtual jakarta.servlet.AsyncEvent.getSuppliedResponse:()Ljakarta/servlet/ServletResponse;
            aload 1 /* t */
         7: .line 407
            invokespecial jakarta.servlet.AsyncEvent.<init>:(Ljakarta/servlet/AsyncContext;Ljakarta/servlet/ServletRequest;Ljakarta/servlet/ServletResponse;Ljava/lang/Throwable;)V
            astore 3 /* errorEvent */
        start local 3 // jakarta.servlet.AsyncEvent errorEvent
         8: .line 409
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.listeners:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* listenersCopy */
        start local 4 // java.util.List listenersCopy
         9: .line 410
            aload 4 /* listenersCopy */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 20
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Throwable int jakarta.servlet.AsyncEvent java.util.List top java.util.Iterator
      StackMap stack:
        10: 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
        11: .line 412
            aload 5 /* listener */
            aload 3 /* errorEvent */
            invokevirtual org.apache.catalina.core.AsyncListenerWrapper.fireOnError:(Ljakarta/servlet/AsyncEvent;)V
        12: .line 413
            goto 20
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Throwable int jakarta.servlet.AsyncEvent java.util.List org.apache.catalina.core.AsyncListenerWrapper java.util.Iterator
      StackMap stack: java.lang.Throwable
        13: astore 7 /* t2 */
        start local 7 // java.lang.Throwable t2
        14: .line 414
            aload 7 /* t2 */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        15: .line 415
            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
        16: .line 416
            aload 5 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        17: .line 415
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        18: .line 416
            aload 7 /* t2 */
        19: .line 415
            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
        20: .line 410
      StackMap locals: org.apache.catalina.core.AsyncContextImpl java.lang.Throwable int jakarta.servlet.AsyncEvent java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 4 // java.util.List listenersCopy
        end local 3 // jakarta.servlet.AsyncEvent errorEvent
        21: .line 422
      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
        22: .line 423
            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
        23: .line 424
            aload 3 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 40
        24: .line 430
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.servletResponse:Ljakarta/servlet/ServletResponse;
            astore 4 /* servletResponse */
        start local 4 // jakarta.servlet.ServletResponse servletResponse
        25: .line 431
            aload 4 /* servletResponse */
            instanceof jakarta.servlet.http.HttpServletResponse
            ifeq 29
        26: .line 432
            aload 4 /* servletResponse */
            checkcast jakarta.servlet.http.HttpServletResponse
        27: .line 433
            sipush 500
        28: .line 432
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        29: .line 436
      StackMap locals: java.util.concurrent.atomic.AtomicBoolean jakarta.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
        30: .line 437
            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
        31: .line 438
            aload 6 /* stdHostValve */
            instanceof org.apache.catalina.core.StandardHostValve
            ifeq 35
        32: .line 439
            aload 6 /* stdHostValve */
            checkcast org.apache.catalina.core.StandardHostValve
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
        33: .line 440
            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 */
        34: .line 439
            invokevirtual org.apache.catalina.core.StandardHostValve.throwable:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;Ljava/lang/Throwable;)V
        35: .line 443
      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;
        36: .line 444
            getstatic org.apache.coyote.ActionCode.ASYNC_IS_ERROR:Lorg/apache/coyote/ActionCode;
            aload 3 /* result */
        37: .line 443
            invokevirtual org.apache.coyote.Request.action:(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V
        38: .line 445
            aload 3 /* result */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 40
        39: .line 448
            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 // jakarta.servlet.ServletResponse servletResponse
        40: .line 451
      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   41     0             this  Lorg/apache/catalina/core/AsyncContextImpl;
            0   41     1                t  Ljava/lang/Throwable;
            0   41     2      fireOnError  Z
            8   21     3       errorEvent  Ljakarta/servlet/AsyncEvent;
            9   21     4    listenersCopy  Ljava/util/List<Lorg/apache/catalina/core/AsyncListenerWrapper;>;
           11   20     5         listener  Lorg/apache/catalina/core/AsyncListenerWrapper;
           14   20     7               t2  Ljava/lang/Throwable;
           22   41     3           result  Ljava/util/concurrent/atomic/AtomicBoolean;
           25   40     4  servletResponse  Ljakarta/servlet/ServletResponse;
           30   40     5             host  Lorg/apache/catalina/Host;
           31   40     6     stdHostValve  Lorg/apache/catalina/Valve;
      Exception table:
        from    to  target  type
          11    12      13  Class java.lang.Throwable
    MethodParameters:
             Name  Flags
      t            
      fireOnError  

  public void incrementInProgressAsyncCount();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 456
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.incrementInProgressAsyncCount:()V
         1: .line 457
            return
        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 decrementInProgressAsyncCount();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.AsyncContextImpl this
         0: .line 462
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.decrementInProgressAsyncCount:()V
         1: .line 463
            return
        end local 0 // org.apache.catalina.core.AsyncContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/core/AsyncContextImpl;

  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 471
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* uri */
        start local 6 // java.lang.StringBuilder uri
         1: .line 472
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ifnonnull 8
         2: .line 473
            ldc "null"
            astore 2 /* rHashCode */
        start local 2 // java.lang.String rHashCode
         3: .line 474
            ldc "null"
            astore 3 /* crHashCode */
        start local 3 // java.lang.String crHashCode
         4: .line 475
            ldc "null"
            astore 4 /* rpHashCode */
        start local 4 // java.lang.String rpHashCode
         5: .line 476
            ldc "-"
            astore 5 /* stage */
        start local 5 // java.lang.String stage
         6: .line 477
            aload 6 /* uri */
            ldc "N/A"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 478
            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 479
      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 480
            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 481
            aload 7 /* coyoteRequest */
            ifnonnull 15
        11: .line 482
            ldc "null"
            astore 3 /* crHashCode */
        start local 3 // java.lang.String crHashCode
        12: .line 483
            ldc "null"
            astore 4 /* rpHashCode */
        start local 4 // java.lang.String rpHashCode
        13: .line 484
            ldc "-"
            astore 5 /* stage */
        start local 5 // java.lang.String stage
        14: .line 485
            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 486
      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 487
            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 488
            aload 8 /* rp */
            ifnonnull 21
        18: .line 489
            ldc "null"
            astore 4 /* rpHashCode */
        start local 4 // java.lang.String rpHashCode
        19: .line 490
            ldc "-"
            astore 5 /* stage */
        start local 5 // java.lang.String stage
        20: .line 491
            goto 23
        end local 5 // java.lang.String stage
        end local 4 // java.lang.String rpHashCode
        21: .line 492
      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 493
            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 496
      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 497
            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 498
            aload 6 /* uri */
            bipush 63
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 499
            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 502
      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 503
            aload 7 /* threadName */
            invokevirtual java.lang.String.length:()I
            istore 8 /* len */
        start local 8 // int len
        29: .line 504
            iload 8 /* len */
            bipush 20
            if_icmple 31
        30: .line 505
            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 508
      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 510
            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 511
            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 507
            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 512
            getstatic org.apache.catalina.core.AsyncContextImpl.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 38
        36: .line 513
            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 514
            goto 39
        38: .line 515
      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 517
      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 520
            aload 0 /* this */
            getfield org.apache.catalina.core.AsyncContextImpl.request:Lorg/apache/catalina/connector/Request;
            ifnonnull 4
         1: .line 522
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.catalina.core.AsyncContextImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 523
            ldc "asyncContextImpl.requestEnded"
         3: .line 522
            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 525
      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