public class AsyncRequestInterceptor extends CallableProcessingInterceptorAdapter implements DeferredResultProcessingInterceptor
RESPONSE_HANDLED, RESULT_NONE| Constructor and Description |
|---|
AsyncRequestInterceptor(SessionFactory sessionFactory,
SessionHolder sessionHolder) |
| Modifier and Type | Method and Description |
|---|---|
<T> void |
afterCompletion(NativeWebRequest request,
Callable<T> task)
This implementation is empty.
|
<T> void |
afterCompletion(NativeWebRequest request,
DeferredResult<T> deferredResult)
Invoked from a container thread when an async request completed for any
reason including timeout and network error.
|
<T> void |
beforeConcurrentHandling(NativeWebRequest request,
DeferredResult<T> deferredResult)
Invoked immediately before the start of concurrent handling, in the same
thread that started it.
|
void |
bindSession() |
<T> Object |
handleTimeout(NativeWebRequest request,
Callable<T> task)
This implementation always returns
RESULT_NONE. |
<T> boolean |
handleTimeout(NativeWebRequest request,
DeferredResult<T> deferredResult)
Invoked from a container thread when an async request times out before
the
DeferredResult has been set. |
<T> void |
postProcess(NativeWebRequest request,
Callable<T> task,
Object concurrentResult)
This implementation is empty.
|
<T> void |
postProcess(NativeWebRequest request,
DeferredResult<T> deferredResult,
Object result)
Invoked after a
DeferredResult has been set, via
DeferredResult.setResult(Object) or
DeferredResult.setErrorResult(Object), and is also ready to
handle the concurrent result. |
<T> void |
preProcess(NativeWebRequest request,
Callable<T> task)
This implementation is empty.
|
<T> void |
preProcess(NativeWebRequest request,
DeferredResult<T> deferredResult)
Invoked immediately after the start of concurrent handling, in the same
thread that started it.
|
beforeConcurrentHandlingpublic AsyncRequestInterceptor(SessionFactory sessionFactory, SessionHolder sessionHolder)
public <T> void preProcess(NativeWebRequest request, Callable<T> task)
CallableProcessingInterceptorAdapterpreProcess in interface CallableProcessingInterceptorpreProcess in class CallableProcessingInterceptorAdapterrequest - the current requesttask - the task for the current async requestpublic void bindSession()
public <T> void postProcess(NativeWebRequest request, Callable<T> task, Object concurrentResult)
CallableProcessingInterceptorAdapterpostProcess in interface CallableProcessingInterceptorpostProcess in class CallableProcessingInterceptorAdapterrequest - the current requesttask - the task for the current async requestconcurrentResult - the result of concurrent processing, which could
be a Throwable if the Callable raised an exceptionpublic <T> Object handleTimeout(NativeWebRequest request, Callable<T> task)
CallableProcessingInterceptorAdapterRESULT_NONE.handleTimeout in interface CallableProcessingInterceptorhandleTimeout in class CallableProcessingInterceptorAdapterrequest - the current requesttask - the task for the current async requestCallableProcessingInterceptor.RESULT_NONE or CallableProcessingInterceptor.RESPONSE_HANDLED, concurrent processing
is resumed and subsequent interceptors are not invokedpublic <T> void afterCompletion(NativeWebRequest request, Callable<T> task) throws Exception
CallableProcessingInterceptorAdapterafterCompletion in interface CallableProcessingInterceptorafterCompletion in class CallableProcessingInterceptorAdapterrequest - the current requesttask - the task for the current async requestException - in case of errorspublic <T> void beforeConcurrentHandling(NativeWebRequest request, DeferredResult<T> deferredResult)
DeferredResultProcessingInterceptorDeferredResult.beforeConcurrentHandling in interface DeferredResultProcessingInterceptorrequest - the current requestdeferredResult - the DeferredResult for the current requestpublic <T> void preProcess(NativeWebRequest request, DeferredResult<T> deferredResult)
DeferredResultProcessingInterceptorDeferredResult.
The DeferredResult may have already been set, for example at
the time of its creation or by another thread.
preProcess in interface DeferredResultProcessingInterceptorrequest - the current requestdeferredResult - the DeferredResult for the current requestpublic <T> void postProcess(NativeWebRequest request, DeferredResult<T> deferredResult, Object result)
DeferredResultProcessingInterceptorDeferredResult has been set, via
DeferredResult.setResult(Object) or
DeferredResult.setErrorResult(Object), and is also ready to
handle the concurrent result.
This method may also be invoked after a timeout when the
DeferredResult was created with a constructor accepting a default
timeout result.
postProcess in interface DeferredResultProcessingInterceptorrequest - the current requestdeferredResult - the DeferredResult for the current requestresult - the result to which the DeferredResultpublic <T> boolean handleTimeout(NativeWebRequest request, DeferredResult<T> deferredResult)
DeferredResultProcessingInterceptorDeferredResult has been set. Implementations may invoke
setResult or
setErrorResult to resume processing.handleTimeout in interface DeferredResultProcessingInterceptorrequest - the current requestdeferredResult - the DeferredResult for the current request; if the
DeferredResult is set, then concurrent processing is resumed and
subsequent interceptors are not invokedtrue if processing should continue, or false if
other interceptors should not be invokedpublic <T> void afterCompletion(NativeWebRequest request, DeferredResult<T> deferredResult)
DeferredResultProcessingInterceptorDeferredResult instance is no longer usable.afterCompletion in interface DeferredResultProcessingInterceptorrequest - the current requestdeferredResult - the DeferredResult for the current request