org.apache.catalina.core

## Class AsyncContextImpl

- java.lang.Object
- - org.apache.catalina.core.AsyncContextImpl

- All Implemented Interfaces:
    AsyncContext, AsyncContextCallback

      public class AsyncContextImpl
      extends Object
      implements AsyncContext, AsyncContextCallback

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static StringManager` | `sm`

    - ### Fields inherited from interface javax.servlet.AsyncContext

      `ASYNC_CONTEXT_PATH, ASYNC_PATH_INFO, ASYNC_QUERY_STRING, ASYNC_REQUEST_URI, ASYNC_SERVLET_PATH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AsyncContextImpl(Request request)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addListener(AsyncListener listener)`
    `void` | `addListener(AsyncListener listener, ServletRequest servletRequest, ServletResponse servletResponse)`
    `void` | `complete()`
    `<T extends AsyncListener> T` | `createListener(Class<T> clazz)`
    `void` | `decrementInProgressAsyncCount()` Used to notify the Context that async processing has ended.
    `void` | `dispatch()`
    `void` | `dispatch(ServletContext servletContext, String path)`
    `void` | `dispatch(String path)`
    `protected void` | `doInternalDispatch()`
    `void` | `fireOnComplete()`
    `ServletRequest` | `getRequest()`
    `ServletResponse` | `getResponse()`
    `long` | `getTimeout()` Get the current timeout.
    `boolean` | `hasOriginalRequestAndResponse()`
    `void` | `incrementInProgressAsyncCount()` Used to notify the Context that async processing has started.
    `boolean` | `isAvailable()` Reports if the web application associated with this async request is available.
    `boolean` | `isStarted()`
    `void` | `recycle()`
    `void` | `setErrorState(Throwable t, boolean fireOnError)`
    `void` | `setStarted(Context context, ServletRequest request, ServletResponse response, boolean originalRequestResponse)`
    `void` | `setTimeout(long timeout)` Set the timeout.
    `void` | `start(Runnable run)`
    `boolean` | `timeout()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### sm

          protected static final StringManager sm

  - ### Constructor Detail

    - #### AsyncContextImpl

          public AsyncContextImpl(Request request)

  - ### Method Detail

    - #### complete

          public void complete()

      Specified by:
        `complete` in interface `AsyncContext`

    - #### fireOnComplete

          public void fireOnComplete()

      Specified by:
        `fireOnComplete` in interface `AsyncContextCallback`

    - #### timeout

          public boolean timeout()

    - #### dispatch

          public void dispatch()

      Specified by:
        `dispatch` in interface `AsyncContext`

    - #### dispatch

          public void dispatch(String path)

      Specified by:
        `dispatch` in interface `AsyncContext`
      Parameters:
        `path` - The path to which the request/response should be dispatched relative to the `ServletContext` from which this async request was started.

    - #### dispatch

          public void dispatch(ServletContext servletContext,
                      String path)

      Specified by:
        `dispatch` in interface `AsyncContext`
      Parameters:
        `servletContext` - The `ServletContext` to which the request/response should be dispatched.
        `path` - The path to which the request/response should be dispatched relative to the specified `ServletContext`.

    - #### getRequest

          public ServletRequest getRequest()

      Specified by:
        `getRequest` in interface `AsyncContext`

    - #### getResponse

          public ServletResponse getResponse()

      Specified by:
        `getResponse` in interface `AsyncContext`

    - #### start

          public void start(Runnable run)

      Specified by:
        `start` in interface `AsyncContext`

    - #### addListener

          public void addListener(AsyncListener listener)

      Specified by:
        `addListener` in interface `AsyncContext`

    - #### addListener

          public void addListener(AsyncListener listener,
                         ServletRequest servletRequest,
                         ServletResponse servletResponse)

      Specified by:
        `addListener` in interface `AsyncContext`

    - #### createListener

          public <T extends AsyncListener> T createListener(Class<T> clazz)
                                                 throws ServletException

      Specified by:
        `createListener` in interface `AsyncContext`
      Throws:
        `ServletException`

    - #### recycle

          public void recycle()

    - #### isStarted

          public boolean isStarted()

    - #### setStarted

          public void setStarted(Context context,
                        ServletRequest request,
                        ServletResponse response,
                        boolean originalRequestResponse)

    - #### hasOriginalRequestAndResponse

          public boolean hasOriginalRequestAndResponse()

      Specified by:
        `hasOriginalRequestAndResponse` in interface `AsyncContext`

    - #### doInternalDispatch

          protected void doInternalDispatch()
                                     throws ServletException,
                                            IOException

      Throws:
        `ServletException`
        `IOException`

    - #### getTimeout

          public long getTimeout()

      Description copied from interface: `javax.servlet.AsyncContext`
      Get the current timeout.
      Specified by:
        `getTimeout` in interface `AsyncContext`
      Returns:
        The timeout in milliseconds. 0 or less indicates no timeout.

    - #### setTimeout

          public void setTimeout(long timeout)

      Description copied from interface: `javax.servlet.AsyncContext`
      Set the timeout.
      Specified by:
        `setTimeout` in interface `AsyncContext`
      Parameters:
        `timeout` - The timeout in milliseconds. 0 or less indicates no timeout.

    - #### isAvailable

          public boolean isAvailable()

      Description copied from interface: `AsyncContextCallback`
      Reports if the web application associated with this async request is available.
      Specified by:
        `isAvailable` in interface `AsyncContextCallback`
      Returns:
        `true` if the associated web application is available, otherwise `false`

    - #### setErrorState

          public void setErrorState(Throwable t,
                           boolean fireOnError)

    - #### incrementInProgressAsyncCount

          public void incrementInProgressAsyncCount()

      Description copied from interface: `AsyncContextCallback`
      Used to notify the Context that async processing has started. Specifically, for the counting of in-progress async requests to work correctly, this must be called exactly once every time the `AsyncStateMachine` transitions from DISPATCHED to any other state.
      Specified by:
        `incrementInProgressAsyncCount` in interface `AsyncContextCallback`

    - #### decrementInProgressAsyncCount

          public void decrementInProgressAsyncCount()

      Description copied from interface: `AsyncContextCallback`
      Used to notify the Context that async processing has ended. Specifically, for the counting of in-progress async requests to work correctly, this must be called exactly once every time the `AsyncStateMachine` transitions to DISPATCHED from any other state.
      Specified by:
        `decrementInProgressAsyncCount` in interface `AsyncContextCallback`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.