org.springframework.web.context.request.async

## Class NoSupportAsyncWebRequest

- java.lang.Object
- - org.springframework.web.context.request.AbstractRequestAttributes
  - - org.springframework.web.context.request.ServletRequestAttributes
    - - org.springframework.web.context.request.ServletWebRequest
      - - org.springframework.web.context.request.async.NoSupportAsyncWebRequest

- All Implemented Interfaces:
    AsyncWebRequest, NativeWebRequest, RequestAttributes, WebRequest

      public class NoSupportAsyncWebRequest
      extends ServletWebRequest
      implements AsyncWebRequest

  An `AsyncWebRequest` to use when there is no underlying async support.
  Since:
    3.2
  Author:
    Rossen Stoyanchev

- - ### Field Summary

    - ### Fields inherited from class org.springframework.web.context.request.ServletRequestAttributes

      `DESTRUCTION_CALLBACK_NAME_PREFIX`

    - ### Fields inherited from class org.springframework.web.context.request.AbstractRequestAttributes

      `requestDestructionCallbacks`

    - ### Fields inherited from interface org.springframework.web.context.request.RequestAttributes

      `REFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NoSupportAsyncWebRequest(HttpServletRequest request, HttpServletResponse response)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCompletionHandler(Runnable runnable)` Add a handle to invoke when request processing completes.
    `void` | `addTimeoutHandler(Runnable runnable)` Add a handler to invoke when concurrent handling has timed out.
    `void` | `dispatch()` Dispatch the request to the container in order to resume processing after concurrent execution in an application thread.
    `boolean` | `isAsyncComplete()` Whether asynchronous processing has completed.
    `boolean` | `isAsyncStarted()` Whether the request is in async mode following a call to `AsyncWebRequest.startAsync()`.
    `void` | `setTimeout(Long timeout)` Set the time required for concurrent handling to complete.
    `void` | `startAsync()` Mark the start of asynchronous request processing so that when the main processing thread exits, the response remains open for further processing in another thread.

    - ### Methods inherited from class org.springframework.web.context.request.ServletWebRequest

      `checkNotModified, checkNotModified, getContextPath, getDescription, getHeader, getHeaderNames, getHeaderValues, getLocale, getNativeRequest, getNativeRequest, getNativeResponse, getNativeResponse, getParameter, getParameterMap, getParameterNames, getParameterValues, getRemoteUser, getResponse, getUserPrincipal, isNotModified, isSecure, isUserInRole, toString`

    - ### Methods inherited from class org.springframework.web.context.request.ServletRequestAttributes

      `getAttribute, getAttributeNames, getRequest, getSession, getSessionId, getSessionMutex, registerDestructionCallback, registerSessionDestructionCallback, removeAttribute, resolveReference, setAttribute, updateAccessedSessionAttributes`

    - ### Methods inherited from class org.springframework.web.context.request.AbstractRequestAttributes

      `isRequestActive, registerRequestDestructionCallback, removeRequestDestructionCallback, requestCompleted`

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

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

    - ### Methods inherited from interface org.springframework.web.context.request.NativeWebRequest

      `getNativeRequest, getNativeRequest, getNativeResponse, getNativeResponse`

    - ### Methods inherited from interface org.springframework.web.context.request.WebRequest

      `checkNotModified, checkNotModified, getContextPath, getDescription, getHeader, getHeaderNames, getHeaderValues, getLocale, getParameter, getParameterMap, getParameterNames, getParameterValues, getRemoteUser, getUserPrincipal, isSecure, isUserInRole`

    - ### Methods inherited from interface org.springframework.web.context.request.RequestAttributes

      `getAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttribute`

- - ### Constructor Detail

    - #### NoSupportAsyncWebRequest

          public NoSupportAsyncWebRequest(HttpServletRequest request,
                                  HttpServletResponse response)

  - ### Method Detail

    - #### addCompletionHandler

          public void addCompletionHandler(Runnable runnable)

      Description copied from interface: `AsyncWebRequest`
      Add a handle to invoke when request processing completes.
      Specified by:
        `addCompletionHandler` in interface `AsyncWebRequest`

    - #### setTimeout

          public void setTimeout(Long timeout)

      Description copied from interface: `AsyncWebRequest`
      Set the time required for concurrent handling to complete. This property should not be set when concurrent handling is in progress, i.e. when `AsyncWebRequest.isAsyncStarted()` is `true`.
      Specified by:
        `setTimeout` in interface `AsyncWebRequest`
      Parameters:
        `timeout` - amount of time in milliseconds; `null` means no timeout, i.e. rely on the default timeout of the container.

    - #### addTimeoutHandler

          public void addTimeoutHandler(Runnable runnable)

      Description copied from interface: `AsyncWebRequest`
      Add a handler to invoke when concurrent handling has timed out.
      Specified by:
        `addTimeoutHandler` in interface `AsyncWebRequest`

    - #### isAsyncStarted

          public boolean isAsyncStarted()

      Description copied from interface: `AsyncWebRequest`
      Whether the request is in async mode following a call to `AsyncWebRequest.startAsync()`. Returns "false" if asynchronous processing never started, has completed, or the request was dispatched for further processing.
      Specified by:
        `isAsyncStarted` in interface `AsyncWebRequest`

    - #### startAsync

          public void startAsync()

      Description copied from interface: `AsyncWebRequest`
      Mark the start of asynchronous request processing so that when the main processing thread exits, the response remains open for further processing in another thread.
      Specified by:
        `startAsync` in interface `AsyncWebRequest`

    - #### isAsyncComplete

          public boolean isAsyncComplete()

      Description copied from interface: `AsyncWebRequest`
      Whether asynchronous processing has completed.
      Specified by:
        `isAsyncComplete` in interface `AsyncWebRequest`

    - #### dispatch

          public void dispatch()

      Description copied from interface: `AsyncWebRequest`
      Dispatch the request to the container in order to resume processing after concurrent execution in an application thread.
      Specified by:
        `dispatch` in interface `AsyncWebRequest`