org.springframework.web.context.request.async

## Class TimeoutDeferredResultProcessingInterceptor

- java.lang.Object
- - org.springframework.web.context.request.async.DeferredResultProcessingInterceptorAdapter
  - - org.springframework.web.context.request.async.TimeoutDeferredResultProcessingInterceptor

All Implemented Interfaces:
  DeferredResultProcessingInterceptor

    public class TimeoutDeferredResultProcessingInterceptor
    extends DeferredResultProcessingInterceptorAdapter

Sends a 503 (SERVICE_UNAVAILABLE) in case of a timeout if the response is not already committed. Registered at the end, after all other interceptors and therefore invoked only if no other interceptor handles the timeout.

Note that according to RFC 2616, a 503 without a 'Retry-After' header is interpreted as a 500 error and the client should not retry. Applications can install their own interceptor to handle a timeout and add a 'Retry-After' header if necessary.

Since:
  3.2
Author:
  Rossen Stoyanchev

### Constructor Summary

Constructors
Constructor and Description
`TimeoutDeferredResultProcessingInterceptor()`

### Method Summary

Methods
`<T> boolean` `handleTimeout(NativeWebRequest request, DeferredResult<T> deferredResult)` This implementation returns `true` by default.

### Methods inherited from class org.springframework.web.context.request.async.DeferredResultProcessingInterceptorAdapter

`afterCompletion, beforeConcurrentHandling, postProcess, preProcess`

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

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

### Constructor Detail

#### TimeoutDeferredResultProcessingInterceptor

    public TimeoutDeferredResultProcessingInterceptor()

### Method Detail

#### handleTimeout

    public <T> boolean handleTimeout(NativeWebRequest request,
                            DeferredResult<T> deferredResult)
                          throws Exception

Description copied from class: `DeferredResultProcessingInterceptorAdapter`
This implementation returns `true` by default.

Specified by:
  `handleTimeout` in interface `DeferredResultProcessingInterceptor`
Overrides:
  `handleTimeout` in class `DeferredResultProcessingInterceptorAdapter`
Parameters:
  `request` - the current request
  `deferredResult` - the DeferredResult for the current request; if the `DeferredResult` is set, then concurrent processing is resumed and subsequent interceptors are not invoked
Returns:
  `true` if processing should continue, or `false` if other interceptors should not be invoked
Throws:
  `Exception` - in case of errors