final class org.apache.catalina.core.ApplicationDispatcher implements org.apache.catalina.AsyncDispatcher, javax.servlet.RequestDispatcher
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.catalina.core.ApplicationDispatcher
  super_class: java.lang.Object
{
  static final boolean STRICT_SERVLET_COMPLIANCE;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean WRAP_SAME_OBJECT;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private final org.apache.catalina.Context context;
    descriptor: Lorg/apache/catalina/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

  private final javax.servlet.http.HttpServletMapping mapping;
    descriptor: Ljavax/servlet/http/HttpServletMapping;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.apache.catalina.Wrapper wrapper;
    descriptor: Lorg/apache/catalina/Wrapper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 72
            getstatic org.apache.catalina.Globals.STRICT_SERVLET_COMPLIANCE:Z
            putstatic org.apache.catalina.core.ApplicationDispatcher.STRICT_SERVLET_COMPLIANCE:Z
         1: .line 75
            ldc "org.apache.catalina.core.ApplicationDispatcher.WRAP_SAME_OBJECT"
         2: .line 74
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* wrapSameObject */
        start local 0 // java.lang.String wrapSameObject
         3: .line 76
            aload 0 /* wrapSameObject */
            ifnonnull 6
         4: .line 77
            getstatic org.apache.catalina.core.ApplicationDispatcher.STRICT_SERVLET_COMPLIANCE:Z
            putstatic org.apache.catalina.core.ApplicationDispatcher.WRAP_SAME_OBJECT:Z
         5: .line 78
            goto 7
         6: .line 79
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* wrapSameObject */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putstatic org.apache.catalina.core.ApplicationDispatcher.WRAP_SAME_OBJECT:Z
        end local 0 // java.lang.String wrapSameObject
         7: .line 273
      StackMap locals:
      StackMap stack:
            ldc "org.apache.catalina.core"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
            putstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            return
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            3    7     0  wrapSameObject  Ljava/lang/String;

  public void <init>(org.apache.catalina.Wrapper, java.lang.String, java.lang.String, java.lang.String, java.lang.String, javax.servlet.http.HttpServletMapping, java.lang.String);
    descriptor: (Lorg/apache/catalina/Wrapper;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljavax/servlet/http/HttpServletMapping;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // org.apache.catalina.Wrapper wrapper
        start local 2 // java.lang.String requestURI
        start local 3 // java.lang.String servletPath
        start local 4 // java.lang.String pathInfo
        start local 5 // java.lang.String queryString
        start local 6 // javax.servlet.http.HttpServletMapping mapping
        start local 7 // java.lang.String name
         0: .line 212
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 215
            aload 0 /* this */
            aload 1 /* wrapper */
            putfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
         2: .line 216
            aload 0 /* this */
            aload 1 /* wrapper */
            invokeinterface org.apache.catalina.Wrapper.getParent:()Lorg/apache/catalina/Container;
            checkcast org.apache.catalina.Context
            putfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
         3: .line 217
            aload 0 /* this */
            aload 2 /* requestURI */
            putfield org.apache.catalina.core.ApplicationDispatcher.requestURI:Ljava/lang/String;
         4: .line 218
            aload 0 /* this */
            aload 3 /* servletPath */
            putfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
         5: .line 219
            aload 0 /* this */
            aload 4 /* pathInfo */
            putfield org.apache.catalina.core.ApplicationDispatcher.pathInfo:Ljava/lang/String;
         6: .line 220
            aload 0 /* this */
            aload 5 /* queryString */
            putfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
         7: .line 221
            aload 0 /* this */
            aload 6 /* mapping */
            putfield org.apache.catalina.core.ApplicationDispatcher.mapping:Ljavax/servlet/http/HttpServletMapping;
         8: .line 222
            aload 0 /* this */
            aload 7 /* name */
            putfield org.apache.catalina.core.ApplicationDispatcher.name:Ljava/lang/String;
         9: .line 223
            return
        end local 7 // java.lang.String name
        end local 6 // javax.servlet.http.HttpServletMapping mapping
        end local 5 // java.lang.String queryString
        end local 4 // java.lang.String pathInfo
        end local 3 // java.lang.String servletPath
        end local 2 // java.lang.String requestURI
        end local 1 // org.apache.catalina.Wrapper wrapper
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   10     1      wrapper  Lorg/apache/catalina/Wrapper;
            0   10     2   requestURI  Ljava/lang/String;
            0   10     3  servletPath  Ljava/lang/String;
            0   10     4     pathInfo  Ljava/lang/String;
            0   10     5  queryString  Ljava/lang/String;
            0   10     6      mapping  Ljavax/servlet/http/HttpServletMapping;
            0   10     7         name  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      wrapper      
      requestURI   
      servletPath  
      pathInfo     
      queryString  
      mapping      
      name         

  public void forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest request
        start local 2 // javax.servlet.ServletResponse response
         0: .line 301
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifeq 9
         1: .line 303
            new org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward
            dup
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            invokespecial org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward.<init>:(Lorg/apache/catalina/core/ApplicationDispatcher;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
            astore 3 /* dp */
        start local 3 // org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward dp
         2: .line 304
            aload 3 /* dp */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
        end local 3 // org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward dp
         3: .line 305
            goto 10
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
         4: astore 3 /* pe */
        start local 3 // java.security.PrivilegedActionException pe
         5: .line 306
            aload 3 /* pe */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         6: .line 307
            aload 4 /* e */
            instanceof javax.servlet.ServletException
            ifeq 8
         7: .line 308
            aload 4 /* e */
            checkcast javax.servlet.ServletException
            athrow
         8: .line 309
      StackMap locals: java.security.PrivilegedActionException java.lang.Exception
      StackMap stack:
            aload 4 /* e */
            checkcast java.io.IOException
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.security.PrivilegedActionException pe
         9: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.doForward:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
        10: .line 314
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.servlet.ServletResponse response
        end local 1 // javax.servlet.ServletRequest request
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   11     1   request  Ljavax/servlet/ServletRequest;
            0   11     2  response  Ljavax/servlet/ServletResponse;
            2    3     3        dp  Lorg/apache/catalina/core/ApplicationDispatcher$PrivilegedForward;
            5    9     3        pe  Ljava/security/PrivilegedActionException;
            6    9     4         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class java.security.PrivilegedActionException
    Exceptions:
      throws javax.servlet.ServletException, java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  private void doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest request
        start local 2 // javax.servlet.ServletResponse response
         0: .line 321
            aload 2 /* response */
            invokeinterface javax.servlet.ServletResponse.isCommitted:()Z
            ifeq 4
         1: .line 322
            new java.lang.IllegalStateException
            dup
         2: .line 323
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.forward.ise"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 322
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 326
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            invokeinterface javax.servlet.ServletResponse.resetBuffer:()V
         5: .line 327
            goto 8
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         6: astore 3 /* e */
        start local 3 // java.lang.IllegalStateException e
         7: .line 328
            aload 3 /* e */
            athrow
        end local 3 // java.lang.IllegalStateException e
         8: .line 332
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.core.ApplicationDispatcher$State
            dup
            aload 1 /* request */
            aload 2 /* response */
            iconst_0
            invokespecial org.apache.catalina.core.ApplicationDispatcher$State.<init>:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Z)V
            astore 3 /* state */
        start local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
         9: .line 334
            getstatic org.apache.catalina.core.ApplicationDispatcher.WRAP_SAME_OBJECT:Z
            ifeq 11
        10: .line 336
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.checkSameObjects:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
        11: .line 339
      StackMap locals: org.apache.catalina.core.ApplicationDispatcher$State
      StackMap stack:
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.wrapResponse:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletResponse;
            pop
        12: .line 341
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            ifnonnull 23
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.pathInfo:Ljava/lang/String;
            ifnonnull 23
        13: .line 344
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.wrapRequest:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletRequest;
            checkcast org.apache.catalina.core.ApplicationHttpRequest
        14: .line 343
            astore 4 /* wrequest */
        start local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
        15: .line 345
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.hrequest:Ljavax/servlet/http/HttpServletRequest;
            astore 5 /* hrequest */
        start local 5 // javax.servlet.http.HttpServletRequest hrequest
        16: .line 346
            aload 4 /* wrequest */
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setRequestURI:(Ljava/lang/String;)V
        17: .line 347
            aload 4 /* wrequest */
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setContextPath:(Ljava/lang/String;)V
        18: .line 348
            aload 4 /* wrequest */
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getServletPath:()Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setServletPath:(Ljava/lang/String;)V
        19: .line 349
            aload 4 /* wrequest */
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getPathInfo:()Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setPathInfo:(Ljava/lang/String;)V
        20: .line 350
            aload 4 /* wrequest */
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getQueryString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setQueryString:(Ljava/lang/String;)V
        21: .line 352
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.processRequest:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
        end local 5 // javax.servlet.http.HttpServletRequest hrequest
        end local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
        22: .line 353
            goto 51
        23: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.wrapRequest:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletRequest;
            checkcast org.apache.catalina.core.ApplicationHttpRequest
            astore 4 /* wrequest */
        start local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
        24: .line 359
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.hrequest:Ljavax/servlet/http/HttpServletRequest;
            astore 5 /* hrequest */
        start local 5 // javax.servlet.http.HttpServletRequest hrequest
        25: .line 360
            aload 5 /* hrequest */
            ldc "javax.servlet.forward.request_uri"
            invokeinterface javax.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 42
        26: .line 361
            aload 4 /* wrequest */
            ldc "javax.servlet.forward.request_uri"
        27: .line 362
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
        28: .line 361
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        29: .line 363
            aload 4 /* wrequest */
            ldc "javax.servlet.forward.context_path"
        30: .line 364
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
        31: .line 363
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        32: .line 365
            aload 4 /* wrequest */
            ldc "javax.servlet.forward.servlet_path"
        33: .line 366
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getServletPath:()Ljava/lang/String;
        34: .line 365
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        35: .line 367
            aload 4 /* wrequest */
            ldc "javax.servlet.forward.path_info"
        36: .line 368
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getPathInfo:()Ljava/lang/String;
        37: .line 367
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        38: .line 369
            aload 4 /* wrequest */
            ldc "javax.servlet.forward.query_string"
        39: .line 370
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getQueryString:()Ljava/lang/String;
        40: .line 369
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        41: .line 371
            aload 4 /* wrequest */
            ldc "javax.servlet.forward.mapping"
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getHttpServletMapping:()Ljavax/servlet/http/HttpServletMapping;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        42: .line 374
      StackMap locals: org.apache.catalina.core.ApplicationHttpRequest javax.servlet.http.HttpServletRequest
      StackMap stack:
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getEncodedPath:()Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setContextPath:(Ljava/lang/String;)V
        43: .line 375
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.requestURI:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setRequestURI:(Ljava/lang/String;)V
        44: .line 376
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setServletPath:(Ljava/lang/String;)V
        45: .line 377
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.pathInfo:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setPathInfo:(Ljava/lang/String;)V
        46: .line 378
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
            ifnull 49
        47: .line 379
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setQueryString:(Ljava/lang/String;)V
        48: .line 380
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setQueryParams:(Ljava/lang/String;)V
        49: .line 382
      StackMap locals:
      StackMap stack:
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.mapping:Ljavax/servlet/http/HttpServletMapping;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setMapping:(Ljavax/servlet/http/HttpServletMapping;)V
        50: .line 384
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.processRequest:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
        end local 5 // javax.servlet.http.HttpServletRequest hrequest
        end local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
        51: .line 387
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokeinterface javax.servlet.ServletRequest.isAsyncStarted:()Z
            ifeq 53
        52: .line 390
            return
        53: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 55
        54: .line 395
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            ldc " Disabling the response for further output"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        55: .line 397
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            instanceof org.apache.catalina.connector.ResponseFacade
            ifeq 58
        56: .line 398
            aload 2 /* response */
            checkcast org.apache.catalina.connector.ResponseFacade
            invokevirtual org.apache.catalina.connector.ResponseFacade.finish:()V
        57: .line 399
            goto 72
        58: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 62
        59: .line 403
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc " The Response is vehiculed using a wrapper: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        60: .line 404
            aload 2 /* response */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        61: .line 403
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        62: .line 409
      StackMap locals:
      StackMap stack:
            aload 2 /* response */
            invokeinterface javax.servlet.ServletResponse.getWriter:()Ljava/io/PrintWriter;
            astore 4 /* writer */
        start local 4 // java.io.PrintWriter writer
        63: .line 410
            aload 4 /* writer */
            invokevirtual java.io.PrintWriter.close:()V
        end local 4 // java.io.PrintWriter writer
        64: .line 411
            goto 72
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        65: pop
        66: .line 413
            aload 2 /* response */
            invokeinterface javax.servlet.ServletResponse.getOutputStream:()Ljavax/servlet/ServletOutputStream;
            astore 4 /* stream */
        start local 4 // javax.servlet.ServletOutputStream stream
        67: .line 414
            aload 4 /* stream */
            invokevirtual javax.servlet.ServletOutputStream.close:()V
        end local 4 // javax.servlet.ServletOutputStream stream
        68: .line 415
            goto 72
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        69: pop
            goto 72
        70: .line 417
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 72
        71: .line 420
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        72: .line 425
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 2 // javax.servlet.ServletResponse response
        end local 1 // javax.servlet.ServletRequest request
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   73     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   73     1   request  Ljavax/servlet/ServletRequest;
            0   73     2  response  Ljavax/servlet/ServletResponse;
            7    8     3         e  Ljava/lang/IllegalStateException;
            9   73     3     state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
           15   22     4  wrequest  Lorg/apache/catalina/core/ApplicationHttpRequest;
           16   22     5  hrequest  Ljavax/servlet/http/HttpServletRequest;
           24   51     4  wrequest  Lorg/apache/catalina/core/ApplicationHttpRequest;
           25   51     5  hrequest  Ljavax/servlet/http/HttpServletRequest;
           63   64     4    writer  Ljava/io/PrintWriter;
           67   68     4    stream  Ljavax/servlet/ServletOutputStream;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.IllegalStateException
          62    64      65  Class java.lang.IllegalStateException
          66    68      69  Class java.lang.IllegalStateException
          66    68      70  Class java.io.IOException
          62    64      71  Class java.io.IOException
    Exceptions:
      throws javax.servlet.ServletException, java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  private void processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest request
        start local 2 // javax.servlet.ServletResponse response
        start local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
         0: .line 442
            aload 1 /* request */
            ldc "org.apache.catalina.core.DISPATCHER_TYPE"
            invokeinterface javax.servlet.ServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.servlet.DispatcherType
            astore 4 /* disInt */
        start local 4 // javax.servlet.DispatcherType disInt
         1: .line 443
            aload 4 /* disInt */
            ifnull 21
         2: .line 444
            iconst_1
            istore 5 /* doInvoke */
        start local 5 // boolean doInvoke
         3: .line 446
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getFireRequestListenersOnForwards:()Z
            ifeq 6
         4: .line 447
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            aload 1 /* request */
            invokeinterface org.apache.catalina.Context.fireRequestInitEvent:(Ljavax/servlet/ServletRequest;)Z
            ifne 6
         5: .line 448
            iconst_0
            istore 5 /* doInvoke */
         6: .line 451
      StackMap locals: javax.servlet.DispatcherType int
      StackMap stack:
            iload 5 /* doInvoke */
            ifeq 21
         7: .line 452
            aload 4 /* disInt */
            getstatic javax.servlet.DispatcherType.ERROR:Ljavax/servlet/DispatcherType;
            if_acmpeq 18
         8: .line 453
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
         9: .line 454
            ldc "org.apache.catalina.core.DISPATCHER_REQUEST_PATH"
        10: .line 455
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.getCombinedPath:()Ljava/lang/String;
        11: .line 453
            invokeinterface javax.servlet.ServletRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 456
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
        13: .line 457
            ldc "org.apache.catalina.core.DISPATCHER_TYPE"
        14: .line 458
            getstatic javax.servlet.DispatcherType.FORWARD:Ljavax/servlet/DispatcherType;
        15: .line 456
            invokeinterface javax.servlet.ServletRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 459
            aload 0 /* this */
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            aload 2 /* response */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.invoke:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
        17: .line 460
            goto 19
        18: .line 461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            aload 2 /* response */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.invoke:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
        19: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getFireRequestListenersOnForwards:()Z
            ifeq 21
        20: .line 465
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            aload 1 /* request */
            invokeinterface org.apache.catalina.Context.fireRequestDestroyEvent:(Ljavax/servlet/ServletRequest;)Z
            pop
        end local 5 // boolean doInvoke
        21: .line 469
      StackMap locals:
      StackMap stack:
            return
        end local 4 // javax.servlet.DispatcherType disInt
        end local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 2 // javax.servlet.ServletResponse response
        end local 1 // javax.servlet.ServletRequest request
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   22     1   request  Ljavax/servlet/ServletRequest;
            0   22     2  response  Ljavax/servlet/ServletResponse;
            0   22     3     state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
            1   22     4    disInt  Ljavax/servlet/DispatcherType;
            3   21     5  doInvoke  Z
    Exceptions:
      throws java.io.IOException, javax.servlet.ServletException
    MethodParameters:
          Name  Flags
      request   
      response  
      state     

  private java.lang.String getCombinedPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
         0: .line 479
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            ifnonnull 2
         1: .line 480
            aconst_null
            areturn
         2: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.pathInfo:Ljava/lang/String;
            ifnonnull 4
         3: .line 483
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            areturn
         4: .line 485
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.pathInfo:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/catalina/core/ApplicationDispatcher;

  public void include(javax.servlet.ServletRequest, javax.servlet.ServletResponse);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest request
        start local 2 // javax.servlet.ServletResponse response
         0: .line 504
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifeq 9
         1: .line 506
            new org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude
            dup
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            invokespecial org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude.<init>:(Lorg/apache/catalina/core/ApplicationDispatcher;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
            astore 3 /* dp */
        start local 3 // org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude dp
         2: .line 507
            aload 3 /* dp */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
        end local 3 // org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude dp
         3: .line 508
            goto 10
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
         4: astore 3 /* pe */
        start local 3 // java.security.PrivilegedActionException pe
         5: .line 509
            aload 3 /* pe */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         6: .line 511
            aload 4 /* e */
            instanceof javax.servlet.ServletException
            ifeq 8
         7: .line 512
            aload 4 /* e */
            checkcast javax.servlet.ServletException
            athrow
         8: .line 513
      StackMap locals: java.security.PrivilegedActionException java.lang.Exception
      StackMap stack:
            aload 4 /* e */
            checkcast java.io.IOException
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.security.PrivilegedActionException pe
         9: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.doInclude:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
        10: .line 518
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.servlet.ServletResponse response
        end local 1 // javax.servlet.ServletRequest request
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   11     1   request  Ljavax/servlet/ServletRequest;
            0   11     2  response  Ljavax/servlet/ServletResponse;
            2    3     3        dp  Lorg/apache/catalina/core/ApplicationDispatcher$PrivilegedInclude;
            5    9     3        pe  Ljava/security/PrivilegedActionException;
            6    9     4         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class java.security.PrivilegedActionException
    Exceptions:
      throws javax.servlet.ServletException, java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  private void doInclude(javax.servlet.ServletRequest, javax.servlet.ServletResponse);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest request
        start local 2 // javax.servlet.ServletResponse response
         0: .line 524
            new org.apache.catalina.core.ApplicationDispatcher$State
            dup
            aload 1 /* request */
            aload 2 /* response */
            iconst_1
            invokespecial org.apache.catalina.core.ApplicationDispatcher$State.<init>:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Z)V
            astore 3 /* state */
        start local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
         1: .line 526
            getstatic org.apache.catalina.core.ApplicationDispatcher.WRAP_SAME_OBJECT:Z
            ifeq 3
         2: .line 528
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.checkSameObjects:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
         3: .line 532
      StackMap locals: org.apache.catalina.core.ApplicationDispatcher$State
      StackMap stack:
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.wrapResponse:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletResponse;
            pop
         4: .line 535
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.name:Ljava/lang/String;
            ifnull 18
         5: .line 538
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.wrapRequest:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletRequest;
            checkcast org.apache.catalina.core.ApplicationHttpRequest
         6: .line 537
            astore 4 /* wrequest */
        start local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
         7: .line 539
            aload 4 /* wrequest */
            ldc "org.apache.catalina.NAMED"
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.name:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 540
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            ifnull 10
         9: .line 541
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setServletPath:(Ljava/lang/String;)V
        10: .line 542
      StackMap locals: org.apache.catalina.core.ApplicationHttpRequest
      StackMap stack:
            aload 4 /* wrequest */
            ldc "org.apache.catalina.core.DISPATCHER_TYPE"
        11: .line 543
            getstatic javax.servlet.DispatcherType.INCLUDE:Ljavax/servlet/DispatcherType;
        12: .line 542
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 544
            aload 4 /* wrequest */
            ldc "org.apache.catalina.core.DISPATCHER_REQUEST_PATH"
        14: .line 545
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.getCombinedPath:()Ljava/lang/String;
        15: .line 544
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 546
            aload 0 /* this */
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerResponse:Ljavax/servlet/ServletResponse;
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.invoke:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
        end local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
        17: .line 547
            goto 51
        18: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.wrapRequest:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletRequest;
            checkcast org.apache.catalina.core.ApplicationHttpRequest
        19: .line 552
            astore 4 /* wrequest */
        start local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
        20: .line 554
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getPath:()Ljava/lang/String;
            astore 5 /* contextPath */
        start local 5 // java.lang.String contextPath
        21: .line 555
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.requestURI:Ljava/lang/String;
            ifnull 25
        22: .line 556
            aload 4 /* wrequest */
            ldc "javax.servlet.include.request_uri"
        23: .line 557
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.requestURI:Ljava/lang/String;
        24: .line 556
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        25: .line 558
      StackMap locals: org.apache.catalina.core.ApplicationHttpRequest java.lang.String
      StackMap stack:
            aload 5 /* contextPath */
            ifnull 29
        26: .line 559
            aload 4 /* wrequest */
            ldc "javax.servlet.include.context_path"
        27: .line 560
            aload 5 /* contextPath */
        28: .line 559
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        29: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            ifnull 33
        30: .line 562
            aload 4 /* wrequest */
            ldc "javax.servlet.include.servlet_path"
        31: .line 563
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
        32: .line 562
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        33: .line 564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.pathInfo:Ljava/lang/String;
            ifnull 37
        34: .line 565
            aload 4 /* wrequest */
            ldc "javax.servlet.include.path_info"
        35: .line 566
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.pathInfo:Ljava/lang/String;
        36: .line 565
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        37: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
            ifnull 42
        38: .line 568
            aload 4 /* wrequest */
            ldc "javax.servlet.include.query_string"
        39: .line 569
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
        40: .line 568
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        41: .line 570
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setQueryParams:(Ljava/lang/String;)V
        42: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.mapping:Ljavax/servlet/http/HttpServletMapping;
            ifnull 44
        43: .line 573
            aload 4 /* wrequest */
            ldc "javax.servlet.include.mapping"
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.mapping:Ljavax/servlet/http/HttpServletMapping;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        44: .line 576
      StackMap locals:
      StackMap stack:
            aload 4 /* wrequest */
            ldc "org.apache.catalina.core.DISPATCHER_TYPE"
        45: .line 577
            getstatic javax.servlet.DispatcherType.INCLUDE:Ljavax/servlet/DispatcherType;
        46: .line 576
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        47: .line 578
            aload 4 /* wrequest */
            ldc "org.apache.catalina.core.DISPATCHER_REQUEST_PATH"
        48: .line 579
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.getCombinedPath:()Ljava/lang/String;
        49: .line 578
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
        50: .line 580
            aload 0 /* this */
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerResponse:Ljavax/servlet/ServletResponse;
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.invoke:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
        end local 5 // java.lang.String contextPath
        end local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
        51: .line 583
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 2 // javax.servlet.ServletResponse response
        end local 1 // javax.servlet.ServletRequest request
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   52     0         this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   52     1      request  Ljavax/servlet/ServletRequest;
            0   52     2     response  Ljavax/servlet/ServletResponse;
            1   52     3        state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
            7   17     4     wrequest  Lorg/apache/catalina/core/ApplicationHttpRequest;
           20   51     4     wrequest  Lorg/apache/catalina/core/ApplicationHttpRequest;
           21   51     5  contextPath  Ljava/lang/String;
    Exceptions:
      throws javax.servlet.ServletException, java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  public void dispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest request
        start local 2 // javax.servlet.ServletResponse response
         0: .line 589
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifeq 9
         1: .line 591
            new org.apache.catalina.core.ApplicationDispatcher$PrivilegedDispatch
            dup
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            invokespecial org.apache.catalina.core.ApplicationDispatcher$PrivilegedDispatch.<init>:(Lorg/apache/catalina/core/ApplicationDispatcher;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
            astore 3 /* dp */
        start local 3 // org.apache.catalina.core.ApplicationDispatcher$PrivilegedDispatch dp
         2: .line 592
            aload 3 /* dp */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
        end local 3 // org.apache.catalina.core.ApplicationDispatcher$PrivilegedDispatch dp
         3: .line 593
            goto 10
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
         4: astore 3 /* pe */
        start local 3 // java.security.PrivilegedActionException pe
         5: .line 594
            aload 3 /* pe */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         6: .line 596
            aload 4 /* e */
            instanceof javax.servlet.ServletException
            ifeq 8
         7: .line 597
            aload 4 /* e */
            checkcast javax.servlet.ServletException
            athrow
         8: .line 598
      StackMap locals: java.security.PrivilegedActionException java.lang.Exception
      StackMap stack:
            aload 4 /* e */
            checkcast java.io.IOException
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.security.PrivilegedActionException pe
         9: .line 601
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.doDispatch:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
        10: .line 603
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.servlet.ServletResponse response
        end local 1 // javax.servlet.ServletRequest request
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   11     1   request  Ljavax/servlet/ServletRequest;
            0   11     2  response  Ljavax/servlet/ServletResponse;
            2    3     3        dp  Lorg/apache/catalina/core/ApplicationDispatcher$PrivilegedDispatch;
            5    9     3        pe  Ljava/security/PrivilegedActionException;
            6    9     4         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class java.security.PrivilegedActionException
    Exceptions:
      throws javax.servlet.ServletException, java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  private void doDispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest request
        start local 2 // javax.servlet.ServletResponse response
         0: .line 609
            new org.apache.catalina.core.ApplicationDispatcher$State
            dup
            aload 1 /* request */
            aload 2 /* response */
            iconst_0
            invokespecial org.apache.catalina.core.ApplicationDispatcher$State.<init>:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Z)V
            astore 3 /* state */
        start local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
         1: .line 612
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.wrapResponse:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletResponse;
            pop
         2: .line 614
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.wrapRequest:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletRequest;
            checkcast org.apache.catalina.core.ApplicationHttpRequest
            astore 4 /* wrequest */
        start local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
         3: .line 615
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.hrequest:Ljavax/servlet/http/HttpServletRequest;
            astore 5 /* hrequest */
        start local 5 // javax.servlet.http.HttpServletRequest hrequest
         4: .line 617
            aload 4 /* wrequest */
            ldc "org.apache.catalina.core.DISPATCHER_TYPE"
            getstatic javax.servlet.DispatcherType.ASYNC:Ljavax/servlet/DispatcherType;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 618
            aload 4 /* wrequest */
            ldc "org.apache.catalina.core.DISPATCHER_REQUEST_PATH"
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.getCombinedPath:()Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 619
            aload 4 /* wrequest */
            ldc "javax.servlet.async.mapping"
            aload 5 /* hrequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getHttpServletMapping:()Ljavax/servlet/http/HttpServletMapping;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 621
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getEncodedPath:()Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setContextPath:(Ljava/lang/String;)V
         8: .line 622
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.requestURI:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setRequestURI:(Ljava/lang/String;)V
         9: .line 623
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.servletPath:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setServletPath:(Ljava/lang/String;)V
        10: .line 624
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.pathInfo:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setPathInfo:(Ljava/lang/String;)V
        11: .line 625
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
            ifnull 14
        12: .line 626
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setQueryString:(Ljava/lang/String;)V
        13: .line 627
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.queryString:Ljava/lang/String;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setQueryParams:(Ljava/lang/String;)V
        14: .line 629
      StackMap locals: org.apache.catalina.core.ApplicationDispatcher$State org.apache.catalina.core.ApplicationHttpRequest javax.servlet.http.HttpServletRequest
      StackMap stack:
            getstatic org.apache.catalina.Globals.STRICT_SERVLET_COMPLIANCE:Z
            ifne 16
        15: .line 630
            aload 4 /* wrequest */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.mapping:Ljavax/servlet/http/HttpServletMapping;
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.setMapping:(Ljavax/servlet/http/HttpServletMapping;)V
        16: .line 633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerResponse:Ljavax/servlet/ServletResponse;
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.invoke:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
        17: .line 634
            return
        end local 5 // javax.servlet.http.HttpServletRequest hrequest
        end local 4 // org.apache.catalina.core.ApplicationHttpRequest wrequest
        end local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 2 // javax.servlet.ServletResponse response
        end local 1 // javax.servlet.ServletRequest request
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   18     1   request  Ljavax/servlet/ServletRequest;
            0   18     2  response  Ljavax/servlet/ServletResponse;
            1   18     3     state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
            3   18     4  wrequest  Lorg/apache/catalina/core/ApplicationHttpRequest;
            4   18     5  hrequest  Ljavax/servlet/http/HttpServletRequest;
    Exceptions:
      throws javax.servlet.ServletException, java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  private void invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse, org.apache.catalina.core.ApplicationDispatcher$State);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=14, args_size=4
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest request
        start local 2 // javax.servlet.ServletResponse response
        start local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
         0: .line 661
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            iconst_0
            aconst_null
            invokeinterface org.apache.catalina.Context.bind:(ZLjava/lang/ClassLoader;)Ljava/lang/ClassLoader;
            astore 4 /* oldCCL */
        start local 4 // java.lang.ClassLoader oldCCL
         1: .line 664
            aload 3 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.hresponse:Ljavax/servlet/http/HttpServletResponse;
            astore 5 /* hresponse */
        start local 5 // javax.servlet.http.HttpServletResponse hresponse
         2: .line 665
            aconst_null
            astore 6 /* servlet */
        start local 6 // javax.servlet.Servlet servlet
         3: .line 666
            aconst_null
            astore 7 /* ioException */
        start local 7 // java.io.IOException ioException
         4: .line 667
            aconst_null
            astore 8 /* servletException */
        start local 8 // javax.servlet.ServletException servletException
         5: .line 668
            aconst_null
            astore 9 /* runtimeException */
        start local 9 // java.lang.RuntimeException runtimeException
         6: .line 669
            iconst_0
            istore 10 /* unavailable */
        start local 10 // boolean unavailable
         7: .line 672
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.isUnavailable:()Z
            ifeq 22
         8: .line 673
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
         9: .line 674
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.isUnavailable"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 675
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        11: .line 674
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        12: .line 673
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        13: .line 676
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getAvailable:()J
            lstore 11 /* available */
        start local 11 // long available
        14: .line 677
            lload 11 /* available */
            lconst_0
            lcmp
            ifle 16
            lload 11 /* available */
            ldc 9223372036854775807
            lcmp
            ifge 16
        15: .line 678
            aload 5 /* hresponse */
            ldc "Retry-After"
            lload 11 /* available */
            invokeinterface javax.servlet.http.HttpServletResponse.setDateHeader:(Ljava/lang/String;J)V
        16: .line 679
      StackMap locals: org.apache.catalina.core.ApplicationDispatcher javax.servlet.ServletRequest javax.servlet.ServletResponse org.apache.catalina.core.ApplicationDispatcher$State java.lang.ClassLoader javax.servlet.http.HttpServletResponse javax.servlet.Servlet java.io.IOException javax.servlet.ServletException java.lang.RuntimeException int long
      StackMap stack:
            aload 5 /* hresponse */
            sipush 503
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
        17: .line 680
            ldc "applicationDispatcher.isUnavailable"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
        18: .line 681
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        19: .line 680
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        20: .line 679
            invokeinterface javax.servlet.http.HttpServletResponse.sendError:(ILjava/lang/String;)V
        21: .line 682
            iconst_1
            istore 10 /* unavailable */
        end local 11 // long available
        22: .line 687
      StackMap locals:
      StackMap stack:
            iload 10 /* unavailable */
            ifne 47
        23: .line 688
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.allocate:()Ljavax/servlet/Servlet;
            astore 6 /* servlet */
        24: .line 690
            goto 47
      StackMap locals:
      StackMap stack: javax.servlet.ServletException
        25: astore 11 /* e */
        start local 11 // javax.servlet.ServletException e
        26: .line 691
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.allocateException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        27: .line 692
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        28: .line 691
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        29: .line 692
            aload 11 /* e */
            invokestatic org.apache.catalina.core.StandardWrapper.getRootCause:(Ljavax/servlet/ServletException;)Ljava/lang/Throwable;
        30: .line 691
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        31: .line 693
            aload 11 /* e */
            astore 8 /* servletException */
        end local 11 // javax.servlet.ServletException e
        32: goto 47
        33: .line 694
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11 /* e */
        start local 11 // java.lang.Throwable e
        34: .line 695
            aload 11 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        35: .line 696
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.allocateException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        36: .line 697
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        37: .line 696
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        38: .line 697
            aload 11 /* e */
        39: .line 696
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        40: .line 698
            new javax.servlet.ServletException
            dup
        41: .line 699
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.allocateException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        42: .line 700
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        43: .line 699
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        44: .line 700
            aload 11 /* e */
        45: .line 698
            invokespecial javax.servlet.ServletException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 8 /* servletException */
        46: .line 701
            aconst_null
            astore 6 /* servlet */
        end local 11 // java.lang.Throwable e
        47: .line 706
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            aload 6 /* servlet */
            invokestatic org.apache.catalina.core.ApplicationFilterFactory.createFilterChain:(Ljavax/servlet/ServletRequest;Lorg/apache/catalina/Wrapper;Ljavax/servlet/Servlet;)Lorg/apache/catalina/core/ApplicationFilterChain;
        48: .line 705
            astore 11 /* filterChain */
        start local 11 // org.apache.catalina.core.ApplicationFilterChain filterChain
        49: .line 711
            aload 6 /* servlet */
            ifnull 89
            aload 11 /* filterChain */
            ifnull 89
        50: .line 712
            aload 11 /* filterChain */
            aload 1 /* request */
            aload 2 /* response */
            invokevirtual org.apache.catalina.core.ApplicationFilterChain.doFilter:(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
        51: .line 715
            goto 89
      StackMap locals: org.apache.catalina.core.ApplicationDispatcher javax.servlet.ServletRequest javax.servlet.ServletResponse org.apache.catalina.core.ApplicationDispatcher$State java.lang.ClassLoader javax.servlet.http.HttpServletResponse javax.servlet.Servlet java.io.IOException javax.servlet.ServletException java.lang.RuntimeException int org.apache.catalina.core.ApplicationFilterChain
      StackMap stack: org.apache.catalina.connector.ClientAbortException
        52: astore 12 /* e */
        start local 12 // org.apache.catalina.connector.ClientAbortException e
        53: .line 716
            aload 12 /* e */
            astore 7 /* ioException */
        end local 12 // org.apache.catalina.connector.ClientAbortException e
        54: goto 89
        55: .line 717
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 12 /* e */
        start local 12 // java.io.IOException e
        56: .line 718
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.serviceException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        57: .line 719
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        58: .line 718
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        59: .line 719
            aload 12 /* e */
        60: .line 718
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        61: .line 720
            aload 12 /* e */
            astore 7 /* ioException */
        end local 12 // java.io.IOException e
        62: goto 89
        63: .line 721
      StackMap locals:
      StackMap stack: javax.servlet.UnavailableException
            astore 12 /* e */
        start local 12 // javax.servlet.UnavailableException e
        64: .line 722
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.serviceException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        65: .line 723
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        66: .line 722
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        67: .line 723
            aload 12 /* e */
        68: .line 722
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        69: .line 724
            aload 12 /* e */
            astore 8 /* servletException */
        70: .line 725
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            aload 12 /* e */
            invokeinterface org.apache.catalina.Wrapper.unavailable:(Ljavax/servlet/UnavailableException;)V
        end local 12 // javax.servlet.UnavailableException e
        71: goto 89
        72: .line 726
      StackMap locals:
      StackMap stack: javax.servlet.ServletException
            astore 12 /* e */
        start local 12 // javax.servlet.ServletException e
        73: .line 727
            aload 12 /* e */
            invokestatic org.apache.catalina.core.StandardWrapper.getRootCause:(Ljavax/servlet/ServletException;)Ljava/lang/Throwable;
            astore 13 /* rootCause */
        start local 13 // java.lang.Throwable rootCause
        74: .line 728
            aload 13 /* rootCause */
            instanceof org.apache.catalina.connector.ClientAbortException
            ifne 80
        75: .line 729
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.serviceException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        76: .line 730
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        77: .line 729
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        78: .line 730
            aload 13 /* rootCause */
        79: .line 729
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        80: .line 732
      StackMap locals: javax.servlet.ServletException java.lang.Throwable
      StackMap stack:
            aload 12 /* e */
            astore 8 /* servletException */
        end local 13 // java.lang.Throwable rootCause
        end local 12 // javax.servlet.ServletException e
        81: goto 89
        82: .line 733
      StackMap locals: org.apache.catalina.core.ApplicationDispatcher javax.servlet.ServletRequest javax.servlet.ServletResponse org.apache.catalina.core.ApplicationDispatcher$State java.lang.ClassLoader javax.servlet.http.HttpServletResponse javax.servlet.Servlet java.io.IOException javax.servlet.ServletException java.lang.RuntimeException int org.apache.catalina.core.ApplicationFilterChain
      StackMap stack: java.lang.RuntimeException
            astore 12 /* e */
        start local 12 // java.lang.RuntimeException e
        83: .line 734
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.serviceException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        84: .line 735
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        85: .line 734
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        86: .line 735
            aload 12 /* e */
        87: .line 734
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        88: .line 736
            aload 12 /* e */
            astore 9 /* runtimeException */
        end local 12 // java.lang.RuntimeException e
        89: .line 741
      StackMap locals:
      StackMap stack:
            aload 11 /* filterChain */
            ifnull 99
        90: .line 742
            aload 11 /* filterChain */
            invokevirtual org.apache.catalina.core.ApplicationFilterChain.release:()V
        91: .line 743
            goto 99
      StackMap locals:
      StackMap stack: java.lang.Throwable
        92: astore 12 /* e */
        start local 12 // java.lang.Throwable e
        93: .line 744
            aload 12 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        94: .line 745
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "standardWrapper.releaseFilters"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        95: .line 746
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
        96: .line 745
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        97: .line 746
            aload 12 /* e */
        98: .line 745
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 12 // java.lang.Throwable e
        99: .line 752
      StackMap locals:
      StackMap stack:
            aload 6 /* servlet */
            ifnull 123
       100: .line 753
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            aload 6 /* servlet */
            invokeinterface org.apache.catalina.Wrapper.deallocate:(Ljavax/servlet/Servlet;)V
       101: .line 755
            goto 123
      StackMap locals:
      StackMap stack: javax.servlet.ServletException
       102: astore 12 /* e */
        start local 12 // javax.servlet.ServletException e
       103: .line 756
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.deallocateException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
       104: .line 757
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
       105: .line 756
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
       106: .line 757
            aload 12 /* e */
       107: .line 756
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
       108: .line 758
            aload 12 /* e */
            astore 8 /* servletException */
        end local 12 // javax.servlet.ServletException e
       109: goto 123
       110: .line 759
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12 /* e */
        start local 12 // java.lang.Throwable e
       111: .line 760
            aload 12 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
       112: .line 761
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getLogger:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.deallocateException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
       113: .line 762
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
       114: .line 761
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
       115: .line 762
            aload 12 /* e */
       116: .line 761
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
       117: .line 763
            new javax.servlet.ServletException
            dup
       118: .line 764
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "applicationDispatcher.deallocateException"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
       119: .line 765
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.wrapper:Lorg/apache/catalina/Wrapper;
            invokeinterface org.apache.catalina.Wrapper.getName:()Ljava/lang/String;
            aastore
       120: .line 764
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
       121: .line 765
            aload 12 /* e */
       122: .line 763
            invokespecial javax.servlet.ServletException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 8 /* servletException */
        end local 12 // java.lang.Throwable e
       123: .line 769
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            iconst_0
            aload 4 /* oldCCL */
            invokeinterface org.apache.catalina.Context.unbind:(ZLjava/lang/ClassLoader;)V
       124: .line 773
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.unwrapRequest:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
       125: .line 774
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.unwrapResponse:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
       126: .line 776
            aload 0 /* this */
            aload 3 /* state */
            invokevirtual org.apache.catalina.core.ApplicationDispatcher.recycleRequestWrapper:(Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
       127: .line 779
            aload 7 /* ioException */
            ifnull 129
       128: .line 780
            aload 7 /* ioException */
            athrow
       129: .line 781
      StackMap locals:
      StackMap stack:
            aload 8 /* servletException */
            ifnull 131
       130: .line 782
            aload 8 /* servletException */
            athrow
       131: .line 783
      StackMap locals:
      StackMap stack:
            aload 9 /* runtimeException */
            ifnull 133
       132: .line 784
            aload 9 /* runtimeException */
            athrow
       133: .line 786
      StackMap locals:
      StackMap stack:
            return
        end local 11 // org.apache.catalina.core.ApplicationFilterChain filterChain
        end local 10 // boolean unavailable
        end local 9 // java.lang.RuntimeException runtimeException
        end local 8 // javax.servlet.ServletException servletException
        end local 7 // java.io.IOException ioException
        end local 6 // javax.servlet.Servlet servlet
        end local 5 // javax.servlet.http.HttpServletResponse hresponse
        end local 4 // java.lang.ClassLoader oldCCL
        end local 3 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 2 // javax.servlet.ServletResponse response
        end local 1 // javax.servlet.ServletRequest request
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0  134     0              this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0  134     1           request  Ljavax/servlet/ServletRequest;
            0  134     2          response  Ljavax/servlet/ServletResponse;
            0  134     3             state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
            1  134     4            oldCCL  Ljava/lang/ClassLoader;
            2  134     5         hresponse  Ljavax/servlet/http/HttpServletResponse;
            3  134     6           servlet  Ljavax/servlet/Servlet;
            4  134     7       ioException  Ljava/io/IOException;
            5  134     8  servletException  Ljavax/servlet/ServletException;
            6  134     9  runtimeException  Ljava/lang/RuntimeException;
            7  134    10       unavailable  Z
           14   22    11         available  J
           26   32    11                 e  Ljavax/servlet/ServletException;
           34   47    11                 e  Ljava/lang/Throwable;
           49  134    11       filterChain  Lorg/apache/catalina/core/ApplicationFilterChain;
           53   54    12                 e  Lorg/apache/catalina/connector/ClientAbortException;
           56   62    12                 e  Ljava/io/IOException;
           64   71    12                 e  Ljavax/servlet/UnavailableException;
           73   81    12                 e  Ljavax/servlet/ServletException;
           74   81    13         rootCause  Ljava/lang/Throwable;
           83   89    12                 e  Ljava/lang/RuntimeException;
           93   99    12                 e  Ljava/lang/Throwable;
          103  109    12                 e  Ljavax/servlet/ServletException;
          111  123    12                 e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          22    24      25  Class javax.servlet.ServletException
          22    24      33  Class java.lang.Throwable
          49    51      52  Class org.apache.catalina.connector.ClientAbortException
          49    51      55  Class java.io.IOException
          49    51      63  Class javax.servlet.UnavailableException
          49    51      72  Class javax.servlet.ServletException
          49    51      82  Class java.lang.RuntimeException
          89    91      92  Class java.lang.Throwable
          99   101     102  Class javax.servlet.ServletException
          99   101     110  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException, javax.servlet.ServletException
    MethodParameters:
          Name  Flags
      request   
      response  
      state     

  private void unwrapRequest(org.apache.catalina.core.ApplicationDispatcher$State);
    descriptor: (Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
         0: .line 794
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.wrapRequest:Ljavax/servlet/ServletRequest;
            ifnonnull 2
         1: .line 795
            return
         2: .line 797
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            invokeinterface javax.servlet.ServletRequest.isAsyncStarted:()Z
            ifeq 5
         3: .line 798
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            invokeinterface javax.servlet.ServletRequest.getAsyncContext:()Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.hasOriginalRequestAndResponse:()Z
            ifne 5
         4: .line 799
            return
         5: .line 803
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* previous */
        start local 2 // javax.servlet.ServletRequest previous
         6: .line 804
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            astore 3 /* current */
        start local 3 // javax.servlet.ServletRequest current
         7: .line 805
            goto 20
         8: .line 808
      StackMap locals: javax.servlet.ServletRequest javax.servlet.ServletRequest
      StackMap stack:
            aload 3 /* current */
            instanceof org.apache.catalina.connector.Request
            ifne 21
         9: .line 809
            aload 3 /* current */
            instanceof org.apache.catalina.connector.RequestFacade
            ifeq 11
        10: .line 810
            goto 21
        11: .line 813
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.wrapRequest:Ljavax/servlet/ServletRequest;
            if_acmpne 18
        12: .line 815
            aload 3 /* current */
            checkcast javax.servlet.ServletRequestWrapper
            invokevirtual javax.servlet.ServletRequestWrapper.getRequest:()Ljavax/servlet/ServletRequest;
        13: .line 814
            astore 4 /* next */
        start local 4 // javax.servlet.ServletRequest next
        14: .line 816
            aload 2 /* previous */
            ifnonnull 16
        15: .line 817
            aload 1 /* state */
            aload 4 /* next */
            putfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            goto 21
        16: .line 819
      StackMap locals: javax.servlet.ServletRequest
      StackMap stack:
            aload 2 /* previous */
            checkcast javax.servlet.ServletRequestWrapper
            aload 4 /* next */
            invokevirtual javax.servlet.ServletRequestWrapper.setRequest:(Ljavax/servlet/ServletRequest;)V
        17: .line 820
            goto 21
        end local 4 // javax.servlet.ServletRequest next
        18: .line 824
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            astore 2 /* previous */
        19: .line 825
            aload 3 /* current */
            checkcast javax.servlet.ServletRequestWrapper
            invokevirtual javax.servlet.ServletRequestWrapper.getRequest:()Ljavax/servlet/ServletRequest;
            astore 3 /* current */
        20: .line 805
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            ifnonnull 8
        21: .line 829
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.servlet.ServletRequest current
        end local 2 // javax.servlet.ServletRequest previous
        end local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   22     1     state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
            6   22     2  previous  Ljavax/servlet/ServletRequest;
            7   22     3   current  Ljavax/servlet/ServletRequest;
           14   18     4      next  Ljavax/servlet/ServletRequest;
    MethodParameters:
       Name  Flags
      state  

  private void unwrapResponse(org.apache.catalina.core.ApplicationDispatcher$State);
    descriptor: (Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
         0: .line 836
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.wrapResponse:Ljavax/servlet/ServletResponse;
            ifnonnull 2
         1: .line 837
            return
         2: .line 839
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            invokeinterface javax.servlet.ServletRequest.isAsyncStarted:()Z
            ifeq 5
         3: .line 840
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            invokeinterface javax.servlet.ServletRequest.getAsyncContext:()Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.hasOriginalRequestAndResponse:()Z
            ifne 5
         4: .line 841
            return
         5: .line 845
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* previous */
        start local 2 // javax.servlet.ServletResponse previous
         6: .line 846
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerResponse:Ljavax/servlet/ServletResponse;
            astore 3 /* current */
        start local 3 // javax.servlet.ServletResponse current
         7: .line 847
            goto 20
         8: .line 850
      StackMap locals: javax.servlet.ServletResponse javax.servlet.ServletResponse
      StackMap stack:
            aload 3 /* current */
            instanceof org.apache.catalina.connector.Response
            ifne 21
         9: .line 851
            aload 3 /* current */
            instanceof org.apache.catalina.connector.ResponseFacade
            ifeq 11
        10: .line 852
            goto 21
        11: .line 855
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.wrapResponse:Ljavax/servlet/ServletResponse;
            if_acmpne 18
        12: .line 857
            aload 3 /* current */
            checkcast javax.servlet.ServletResponseWrapper
            invokevirtual javax.servlet.ServletResponseWrapper.getResponse:()Ljavax/servlet/ServletResponse;
        13: .line 856
            astore 4 /* next */
        start local 4 // javax.servlet.ServletResponse next
        14: .line 858
            aload 2 /* previous */
            ifnonnull 16
        15: .line 859
            aload 1 /* state */
            aload 4 /* next */
            putfield org.apache.catalina.core.ApplicationDispatcher$State.outerResponse:Ljavax/servlet/ServletResponse;
            goto 21
        16: .line 861
      StackMap locals: javax.servlet.ServletResponse
      StackMap stack:
            aload 2 /* previous */
            checkcast javax.servlet.ServletResponseWrapper
            aload 4 /* next */
            invokevirtual javax.servlet.ServletResponseWrapper.setResponse:(Ljavax/servlet/ServletResponse;)V
        17: .line 862
            goto 21
        end local 4 // javax.servlet.ServletResponse next
        18: .line 866
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            astore 2 /* previous */
        19: .line 867
            aload 3 /* current */
            checkcast javax.servlet.ServletResponseWrapper
            invokevirtual javax.servlet.ServletResponseWrapper.getResponse:()Ljavax/servlet/ServletResponse;
            astore 3 /* current */
        20: .line 847
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            ifnonnull 8
        21: .line 871
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.servlet.ServletResponse current
        end local 2 // javax.servlet.ServletResponse previous
        end local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   22     1     state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
            6   22     2  previous  Ljavax/servlet/ServletResponse;
            7   22     3   current  Ljavax/servlet/ServletResponse;
           14   18     4      next  Ljavax/servlet/ServletResponse;
    MethodParameters:
       Name  Flags
      state  

  private javax.servlet.ServletRequest wrapRequest(org.apache.catalina.core.ApplicationDispatcher$State);
    descriptor: (Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletRequest;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
         0: .line 881
            aconst_null
            astore 2 /* previous */
        start local 2 // javax.servlet.ServletRequest previous
         1: .line 882
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            astore 3 /* current */
        start local 3 // javax.servlet.ServletRequest current
         2: .line 883
            goto 13
         3: .line 884
      StackMap locals: javax.servlet.ServletRequest javax.servlet.ServletRequest
      StackMap stack:
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.hrequest:Ljavax/servlet/http/HttpServletRequest;
            ifnonnull 5
            aload 3 /* current */
            instanceof javax.servlet.http.HttpServletRequest
            ifeq 5
         4: .line 885
            aload 1 /* state */
            aload 3 /* current */
            checkcast javax.servlet.http.HttpServletRequest
            putfield org.apache.catalina.core.ApplicationDispatcher$State.hrequest:Ljavax/servlet/http/HttpServletRequest;
         5: .line 886
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof javax.servlet.ServletRequestWrapper
            ifne 7
         6: .line 887
            goto 14
         7: .line 888
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof org.apache.catalina.core.ApplicationHttpRequest
            ifeq 9
         8: .line 889
            goto 14
         9: .line 890
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof org.apache.catalina.core.ApplicationRequest
            ifeq 11
        10: .line 891
            goto 14
        11: .line 892
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            astore 2 /* previous */
        12: .line 893
            aload 3 /* current */
            checkcast javax.servlet.ServletRequestWrapper
            invokevirtual javax.servlet.ServletRequestWrapper.getRequest:()Ljavax/servlet/ServletRequest;
            astore 3 /* current */
        13: .line 883
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            ifnonnull 3
        14: .line 897
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* wrapper */
        start local 4 // javax.servlet.ServletRequest wrapper
        15: .line 898
            aload 3 /* current */
            instanceof org.apache.catalina.core.ApplicationHttpRequest
            ifne 18
        16: .line 899
            aload 3 /* current */
            instanceof org.apache.catalina.connector.Request
            ifne 18
        17: .line 900
            aload 3 /* current */
            instanceof javax.servlet.http.HttpServletRequest
            ifeq 37
        18: .line 902
      StackMap locals: javax.servlet.ServletRequest
      StackMap stack:
            aload 3 /* current */
            checkcast javax.servlet.http.HttpServletRequest
            astore 5 /* hcurrent */
        start local 5 // javax.servlet.http.HttpServletRequest hcurrent
        19: .line 903
            iconst_0
            istore 6 /* crossContext */
        start local 6 // boolean crossContext
        20: .line 904
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            instanceof org.apache.catalina.core.ApplicationHttpRequest
            ifne 23
        21: .line 905
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            instanceof org.apache.catalina.connector.Request
            ifne 23
        22: .line 906
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            instanceof javax.servlet.http.HttpServletRequest
            ifeq 33
        23: .line 908
      StackMap locals: javax.servlet.http.HttpServletRequest int
      StackMap stack:
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            checkcast javax.servlet.http.HttpServletRequest
        24: .line 907
            astore 7 /* houterRequest */
        start local 7 // javax.servlet.http.HttpServletRequest houterRequest
        25: .line 909
            aload 7 /* houterRequest */
        26: .line 910
            ldc "javax.servlet.include.context_path"
        27: .line 909
            invokeinterface javax.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            astore 8 /* contextPath */
        start local 8 // java.lang.Object contextPath
        28: .line 911
            aload 8 /* contextPath */
            ifnonnull 30
        29: .line 913
            aload 7 /* houterRequest */
            invokeinterface javax.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
            astore 8 /* contextPath */
        30: .line 915
      StackMap locals: javax.servlet.http.HttpServletRequest java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getPath:()Ljava/lang/String;
            aload 8 /* contextPath */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
            iconst_0
            goto 32
      StackMap locals:
      StackMap stack:
        31: iconst_1
      StackMap locals:
      StackMap stack: int
        32: istore 6 /* crossContext */
        end local 8 // java.lang.Object contextPath
        end local 7 // javax.servlet.http.HttpServletRequest houterRequest
        33: .line 917
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.core.ApplicationHttpRequest
            dup
        34: .line 918
            aload 5 /* hcurrent */
            aload 0 /* this */
            getfield org.apache.catalina.core.ApplicationDispatcher.context:Lorg/apache/catalina/Context;
            iload 6 /* crossContext */
        35: .line 917
            invokespecial org.apache.catalina.core.ApplicationHttpRequest.<init>:(Ljavax/servlet/http/HttpServletRequest;Lorg/apache/catalina/Context;Z)V
            astore 4 /* wrapper */
        end local 6 // boolean crossContext
        end local 5 // javax.servlet.http.HttpServletRequest hcurrent
        36: .line 919
            goto 38
        37: .line 920
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.core.ApplicationRequest
            dup
            aload 3 /* current */
            invokespecial org.apache.catalina.core.ApplicationRequest.<init>:(Ljavax/servlet/ServletRequest;)V
            astore 4 /* wrapper */
        38: .line 922
      StackMap locals:
      StackMap stack:
            aload 2 /* previous */
            ifnonnull 40
        39: .line 923
            aload 1 /* state */
            aload 4 /* wrapper */
            putfield org.apache.catalina.core.ApplicationDispatcher$State.outerRequest:Ljavax/servlet/ServletRequest;
            goto 41
        40: .line 925
      StackMap locals:
      StackMap stack:
            aload 2 /* previous */
            checkcast javax.servlet.ServletRequestWrapper
            aload 4 /* wrapper */
            invokevirtual javax.servlet.ServletRequestWrapper.setRequest:(Ljavax/servlet/ServletRequest;)V
        41: .line 926
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            aload 4 /* wrapper */
            putfield org.apache.catalina.core.ApplicationDispatcher$State.wrapRequest:Ljavax/servlet/ServletRequest;
        42: .line 927
            aload 4 /* wrapper */
            areturn
        end local 4 // javax.servlet.ServletRequest wrapper
        end local 3 // javax.servlet.ServletRequest current
        end local 2 // javax.servlet.ServletRequest previous
        end local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   43     0           this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   43     1          state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
            1   43     2       previous  Ljavax/servlet/ServletRequest;
            2   43     3        current  Ljavax/servlet/ServletRequest;
           15   43     4        wrapper  Ljavax/servlet/ServletRequest;
           19   36     5       hcurrent  Ljavax/servlet/http/HttpServletRequest;
           20   36     6   crossContext  Z
           25   33     7  houterRequest  Ljavax/servlet/http/HttpServletRequest;
           28   33     8    contextPath  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      state  

  private javax.servlet.ServletResponse wrapResponse(org.apache.catalina.core.ApplicationDispatcher$State);
    descriptor: (Lorg/apache/catalina/core/ApplicationDispatcher$State;)Ljavax/servlet/ServletResponse;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
         0: .line 939
            aconst_null
            astore 2 /* previous */
        start local 2 // javax.servlet.ServletResponse previous
         1: .line 940
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.outerResponse:Ljavax/servlet/ServletResponse;
            astore 3 /* current */
        start local 3 // javax.servlet.ServletResponse current
         2: .line 941
            goto 15
         3: .line 942
      StackMap locals: javax.servlet.ServletResponse javax.servlet.ServletResponse
      StackMap stack:
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.hresponse:Ljavax/servlet/http/HttpServletResponse;
            ifnonnull 7
            aload 3 /* current */
            instanceof javax.servlet.http.HttpServletResponse
            ifeq 7
         4: .line 943
            aload 1 /* state */
            aload 3 /* current */
            checkcast javax.servlet.http.HttpServletResponse
            putfield org.apache.catalina.core.ApplicationDispatcher$State.hresponse:Ljavax/servlet/http/HttpServletResponse;
         5: .line 944
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.including:Z
            ifne 7
         6: .line 945
            aconst_null
            areturn
         7: .line 947
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof javax.servlet.ServletResponseWrapper
            ifne 9
         8: .line 948
            goto 16
         9: .line 949
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof org.apache.catalina.core.ApplicationHttpResponse
            ifeq 11
        10: .line 950
            goto 16
        11: .line 951
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            instanceof org.apache.catalina.core.ApplicationResponse
            ifeq 13
        12: .line 952
            goto 16
        13: .line 953
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            astore 2 /* previous */
        14: .line 954
            aload 3 /* current */
            checkcast javax.servlet.ServletResponseWrapper
            invokevirtual javax.servlet.ServletResponseWrapper.getResponse:()Ljavax/servlet/ServletResponse;
            astore 3 /* current */
        15: .line 941
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            ifnonnull 3
        16: .line 958
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* wrapper */
        start local 4 // javax.servlet.ServletResponse wrapper
        17: .line 959
            aload 3 /* current */
            instanceof org.apache.catalina.core.ApplicationHttpResponse
            ifne 20
        18: .line 960
            aload 3 /* current */
            instanceof org.apache.catalina.connector.Response
            ifne 20
        19: .line 961
            aload 3 /* current */
            instanceof javax.servlet.http.HttpServletResponse
            ifeq 25
        20: .line 963
      StackMap locals: javax.servlet.ServletResponse
      StackMap stack:
            new org.apache.catalina.core.ApplicationHttpResponse
            dup
            aload 3 /* current */
            checkcast javax.servlet.http.HttpServletResponse
        21: .line 964
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.including:Z
        22: .line 963
            invokespecial org.apache.catalina.core.ApplicationHttpResponse.<init>:(Ljavax/servlet/http/HttpServletResponse;Z)V
        23: .line 962
            astore 4 /* wrapper */
        24: .line 964
            goto 26
        25: .line 966
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.core.ApplicationResponse
            dup
            aload 3 /* current */
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.including:Z
            invokespecial org.apache.catalina.core.ApplicationResponse.<init>:(Ljavax/servlet/ServletResponse;Z)V
            astore 4 /* wrapper */
        26: .line 967
      StackMap locals:
      StackMap stack:
            aload 2 /* previous */
            ifnonnull 28
        27: .line 968
            aload 1 /* state */
            aload 4 /* wrapper */
            putfield org.apache.catalina.core.ApplicationDispatcher$State.outerResponse:Ljavax/servlet/ServletResponse;
            goto 29
        28: .line 970
      StackMap locals:
      StackMap stack:
            aload 2 /* previous */
            checkcast javax.servlet.ServletResponseWrapper
            aload 4 /* wrapper */
            invokevirtual javax.servlet.ServletResponseWrapper.setResponse:(Ljavax/servlet/ServletResponse;)V
        29: .line 971
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            aload 4 /* wrapper */
            putfield org.apache.catalina.core.ApplicationDispatcher$State.wrapResponse:Ljavax/servlet/ServletResponse;
        30: .line 972
            aload 4 /* wrapper */
            areturn
        end local 4 // javax.servlet.ServletResponse wrapper
        end local 3 // javax.servlet.ServletResponse current
        end local 2 // javax.servlet.ServletResponse previous
        end local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   31     0      this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   31     1     state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
            1   31     2  previous  Ljavax/servlet/ServletResponse;
            2   31     3   current  Ljavax/servlet/ServletResponse;
           17   31     4   wrapper  Ljavax/servlet/ServletResponse;
    MethodParameters:
       Name  Flags
      state  

  private void checkSameObjects(javax.servlet.ServletRequest, javax.servlet.ServletResponse);
    descriptor: (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // javax.servlet.ServletRequest appRequest
        start local 2 // javax.servlet.ServletResponse appResponse
         0: .line 979
            invokestatic org.apache.catalina.core.ApplicationFilterChain.getLastServicedRequest:()Ljavax/servlet/ServletRequest;
         1: .line 978
            astore 3 /* originalRequest */
        start local 3 // javax.servlet.ServletRequest originalRequest
         2: .line 981
            invokestatic org.apache.catalina.core.ApplicationFilterChain.getLastServicedResponse:()Ljavax/servlet/ServletResponse;
         3: .line 980
            astore 4 /* originalResponse */
        start local 4 // javax.servlet.ServletResponse originalResponse
         4: .line 984
            aload 3 /* originalRequest */
            ifnull 5
            aload 4 /* originalResponse */
            ifnonnull 6
         5: .line 985
      StackMap locals: javax.servlet.ServletRequest javax.servlet.ServletResponse
      StackMap stack:
            return
         6: .line 988
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* same */
        start local 5 // boolean same
         7: .line 989
            aload 1 /* appRequest */
            astore 6 /* dispatchedRequest */
        start local 6 // javax.servlet.ServletRequest dispatchedRequest
         8: .line 992
            goto 11
         9: .line 995
      StackMap locals: int javax.servlet.ServletRequest
      StackMap stack:
            aload 3 /* originalRequest */
            checkcast javax.servlet.ServletRequestWrapper
            invokevirtual javax.servlet.ServletRequestWrapper.getRequest:()Ljavax/servlet/ServletRequest;
        10: .line 994
            astore 3 /* originalRequest */
        11: .line 992
      StackMap locals:
      StackMap stack:
            aload 3 /* originalRequest */
            instanceof javax.servlet.ServletRequestWrapper
            ifeq 19
        12: .line 993
            aload 3 /* originalRequest */
            checkcast javax.servlet.ServletRequestWrapper
            invokevirtual javax.servlet.ServletRequestWrapper.getRequest:()Ljavax/servlet/ServletRequest;
            ifnonnull 9
        13: .line 998
            goto 19
        14: .line 999
      StackMap locals:
      StackMap stack:
            aload 3 /* originalRequest */
            aload 6 /* dispatchedRequest */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 1000
            iconst_1
            istore 5 /* same */
        16: .line 1002
      StackMap locals:
      StackMap stack:
            iload 5 /* same */
            ifne 20
            aload 6 /* dispatchedRequest */
            instanceof javax.servlet.ServletRequestWrapper
            ifeq 20
        17: .line 1004
            aload 6 /* dispatchedRequest */
            checkcast javax.servlet.ServletRequestWrapper
            invokevirtual javax.servlet.ServletRequestWrapper.getRequest:()Ljavax/servlet/ServletRequest;
        18: .line 1003
            astore 6 /* dispatchedRequest */
        19: .line 998
      StackMap locals:
      StackMap stack:
            iload 5 /* same */
            ifeq 14
        20: .line 1009
      StackMap locals:
      StackMap stack:
            iload 5 /* same */
            ifne 24
        21: .line 1010
            new javax.servlet.ServletException
            dup
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
        22: .line 1011
            ldc "applicationDispatcher.specViolation.request"
        23: .line 1010
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial javax.servlet.ServletException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 1014
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* same */
        25: .line 1015
            aload 2 /* appResponse */
            astore 7 /* dispatchedResponse */
        start local 7 // javax.servlet.ServletResponse dispatchedResponse
        26: .line 1018
            goto 29
        27: .line 1022
      StackMap locals: javax.servlet.ServletResponse
      StackMap stack:
            aload 4 /* originalResponse */
            checkcast javax.servlet.ServletResponseWrapper
            invokevirtual javax.servlet.ServletResponseWrapper.getResponse:()Ljavax/servlet/ServletResponse;
        28: .line 1021
            astore 4 /* originalResponse */
        29: .line 1018
      StackMap locals:
      StackMap stack:
            aload 4 /* originalResponse */
            instanceof javax.servlet.ServletResponseWrapper
            ifeq 37
        30: .line 1019
            aload 4 /* originalResponse */
            checkcast javax.servlet.ServletResponseWrapper
            invokevirtual javax.servlet.ServletResponseWrapper.getResponse:()Ljavax/servlet/ServletResponse;
            ifnonnull 27
        31: .line 1025
            goto 37
        32: .line 1026
      StackMap locals:
      StackMap stack:
            aload 4 /* originalResponse */
            aload 7 /* dispatchedResponse */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 34
        33: .line 1027
            iconst_1
            istore 5 /* same */
        34: .line 1030
      StackMap locals:
      StackMap stack:
            iload 5 /* same */
            ifne 38
            aload 7 /* dispatchedResponse */
            instanceof javax.servlet.ServletResponseWrapper
            ifeq 38
        35: .line 1032
            aload 7 /* dispatchedResponse */
            checkcast javax.servlet.ServletResponseWrapper
            invokevirtual javax.servlet.ServletResponseWrapper.getResponse:()Ljavax/servlet/ServletResponse;
        36: .line 1031
            astore 7 /* dispatchedResponse */
        37: .line 1025
      StackMap locals:
      StackMap stack:
            iload 5 /* same */
            ifeq 32
        38: .line 1038
      StackMap locals:
      StackMap stack:
            iload 5 /* same */
            ifne 42
        39: .line 1039
            new javax.servlet.ServletException
            dup
            getstatic org.apache.catalina.core.ApplicationDispatcher.sm:Lorg/apache/tomcat/util/res/StringManager;
        40: .line 1040
            ldc "applicationDispatcher.specViolation.response"
        41: .line 1039
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial javax.servlet.ServletException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 1042
      StackMap locals:
      StackMap stack:
            return
        end local 7 // javax.servlet.ServletResponse dispatchedResponse
        end local 6 // javax.servlet.ServletRequest dispatchedRequest
        end local 5 // boolean same
        end local 4 // javax.servlet.ServletResponse originalResponse
        end local 3 // javax.servlet.ServletRequest originalRequest
        end local 2 // javax.servlet.ServletResponse appResponse
        end local 1 // javax.servlet.ServletRequest appRequest
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   43     0                this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0   43     1          appRequest  Ljavax/servlet/ServletRequest;
            0   43     2         appResponse  Ljavax/servlet/ServletResponse;
            2   43     3     originalRequest  Ljavax/servlet/ServletRequest;
            4   43     4    originalResponse  Ljavax/servlet/ServletResponse;
            7   43     5                same  Z
            8   43     6   dispatchedRequest  Ljavax/servlet/ServletRequest;
           26   43     7  dispatchedResponse  Ljavax/servlet/ServletResponse;
    Exceptions:
      throws javax.servlet.ServletException
    MethodParameters:
             Name  Flags
      appRequest   
      appResponse  

  private void recycleRequestWrapper(org.apache.catalina.core.ApplicationDispatcher$State);
    descriptor: (Lorg/apache/catalina/core/ApplicationDispatcher$State;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.ApplicationDispatcher this
        start local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
         0: .line 1045
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.wrapRequest:Ljavax/servlet/ServletRequest;
            instanceof org.apache.catalina.core.ApplicationHttpRequest
            ifeq 2
         1: .line 1046
            aload 1 /* state */
            getfield org.apache.catalina.core.ApplicationDispatcher$State.wrapRequest:Ljavax/servlet/ServletRequest;
            checkcast org.apache.catalina.core.ApplicationHttpRequest
            invokevirtual org.apache.catalina.core.ApplicationHttpRequest.recycle:()V
         2: .line 1048
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.catalina.core.ApplicationDispatcher$State state
        end local 0 // org.apache.catalina.core.ApplicationDispatcher this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/catalina/core/ApplicationDispatcher;
            0    3     1  state  Lorg/apache/catalina/core/ApplicationDispatcher$State;
    MethodParameters:
       Name  Flags
      state  
}
SourceFile: "ApplicationDispatcher.java"
NestMembers:
  org.apache.catalina.core.ApplicationDispatcher$PrivilegedDispatch  org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward  org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude  org.apache.catalina.core.ApplicationDispatcher$State
InnerClasses:
  protected PrivilegedDispatch = org.apache.catalina.core.ApplicationDispatcher$PrivilegedDispatch of org.apache.catalina.core.ApplicationDispatcher
  protected PrivilegedForward = org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward of org.apache.catalina.core.ApplicationDispatcher
  protected PrivilegedInclude = org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude of org.apache.catalina.core.ApplicationDispatcher
  private State = org.apache.catalina.core.ApplicationDispatcher$State of org.apache.catalina.core.ApplicationDispatcher