protected class SynchronousExecutionContext.SynchronousAsynchronousResponse extends AbstractAsynchronousResponse
Modifier and Type | Field and Description |
---|---|
protected boolean |
cancelled |
annotations, completionCallbacks, contextDataMap, dispatcher, method, request, response, responseFilters, timeoutHandler, writerInterceptors
NO_TIMEOUT
Constructor and Description |
---|
SynchronousAsynchronousResponse(SynchronousDispatcher dispatcher,
HttpRequest request,
HttpResponse response) |
Modifier and Type | Method and Description |
---|---|
boolean |
cancel()
Cancel the suspended request processing.
|
boolean |
cancel(Date retryAfter)
Cancel the suspended request processing.
|
boolean |
cancel(int retryAfter)
Cancel the suspended request processing.
|
void |
initialRequestThreadFinished()
Callback by the initial http request thread.
|
boolean |
isCancelled()
Check if the asynchronous response instance has been cancelled.
|
boolean |
isDone()
Check if the processing of a request this asynchronous response instance belongs to
has finished.
|
boolean |
isSuspended()
Check if the asynchronous response instance is in a suspended state.
|
boolean |
resume(Object entity)
Resume the suspended request processing using the provided response data.
|
boolean |
resume(Throwable exc)
Resume the suspended request processing using the provided throwable.
|
boolean |
setTimeout(long time,
TimeUnit unit)
Set/update the suspend timeout.
|
completionCallbacks, getAnnotations, getMethod, getResponseFilters, getWriterInterceptors, internalResume, internalResume, register, register, register, register, setAnnotations, setMethod, setResponseFilters, setTimeoutHandler, setWriterInterceptors
public SynchronousAsynchronousResponse(SynchronousDispatcher dispatcher, HttpRequest request, HttpResponse response)
public boolean resume(Object entity)
AsyncResponse
JAX-RS resource method
.
The asynchronous response must be still in a suspended
state
for this method to succeed.
By executing this method, the request is guaranteed to complete either successfully or with an error. The data processing by the JAX-RS runtime follows the same path as it would for the response data returned synchronously by a JAX-RS resource, except that unmapped exceptions are not re-thrown by JAX-RS runtime to be handled by a hosting I/O container. Instead, any unmapped exceptions are propagated to the hosting I/O container via a container-specific callback mechanism. Depending on the container implementation, propagated unmapped exceptions typically result in an error status being sent to the client and/or the connection being closed.
entity
- data to be sent back in response to the suspended request.true
if the request processing has been resumed, returns false
in case
the request processing is not suspended
and could not be resumed.AsyncResponse.resume(Throwable)
public boolean resume(Throwable exc) throws IllegalStateException
AsyncResponse
JAX-RS resource method
.
By executing this method, the request is guaranteed to complete either successfully or with an error. The throwable processing by the JAX-RS runtime follows the same path as it would for the response data returned synchronously by a JAX-RS resource, except that unmapped exceptions are not re-thrown by JAX-RS runtime to be handled by a hosting I/O container. Instead, any unmapped exceptions are propagated to the hosting I/O container via a container-specific callback mechanism. Depending on the container implementation, propagated unmapped exceptions typically result in an error status being sent to the client and/or the connection being closed.
exc
- an exception to be raised in response to the suspended
request.true
if the response has been resumed, returns false
in case
the response is not suspended
and could not be resumed.IllegalStateException
AsyncResponse.resume(Object)
public void initialRequestThreadFinished()
ResteasyAsynchronousResponse
public boolean setTimeout(long time, TimeUnit unit) throws IllegalStateException
AsyncResponse
The new suspend timeout values override any timeout value previously specified.
The asynchronous response must be still in a suspended
state
for this method to succeed.
time
- suspend timeout value in the give time unit
. Value lower
or equal to 0 causes the context to suspend indefinitely.unit
- suspend timeout value time unit.true
if the suspend time out has been set, returns false
in case
the request processing is not in the suspended
state.IllegalStateException
public boolean cancel()
AsyncResponse
When a request processing is cancelled using this method, the JAX-RS implementation
MUST indicate to the client that the request processing has been cancelled by sending
back a HTTP 503 (Service unavailable)
error response.
Invoking a cancel(...)
method multiple times to cancel request processing has the same
effect as canceling the request processing only once. Invoking a cancel(...)
method on
an asynchronous response instance that has already been cancelled or resumed has no effect and the
method call is ignored while returning true
, in case the request has been cancelled previously.
Otherwise, in case the request has been resumed regularly (using a resume(...) method
) or
resumed due to a time-out, method returns false
.
true
if the request processing has been cancelled, returns false
in case
the request processing is not suspended
and could not be cancelled
and is not cancelled
already.AsyncResponse.cancel(int)
,
AsyncResponse.cancel(java.util.Date)
public boolean cancel(int retryAfter)
AsyncResponse
When a request processing is cancelled using this method, the JAX-RS implementation
MUST indicate to the client that the request processing has been cancelled by sending
back a HTTP 503 (Service unavailable)
error response with a Retry-After
header set to the value provided by the method
parameter.
Invoking a cancel(...)
method multiple times to cancel request processing has the same
effect as canceling the request processing only once. Invoking a cancel(...)
method on
an asynchronous response instance that has already been cancelled or resumed has no effect and the
method call is ignored while returning true
, in case the request has been cancelled previously.
Otherwise, in case the request has been resumed regularly (using a resume(...) method
) or
resumed due to a time-out, method returns false
.
retryAfter
- a decimal integer number of seconds after the response is sent to the client that
indicates how long the service is expected to be unavailable to the requesting
client.true
if the request processing has been cancelled, returns false
in case
the request processing is not suspended
and could not be cancelled
and is not cancelled
already.AsyncResponse.cancel()
,
AsyncResponse.cancel(java.util.Date)
public boolean cancel(Date retryAfter)
AsyncResponse
When a request processing is cancelled using this method, the JAX-RS implementation
MUST indicate to the client that the request processing has been cancelled by sending
back a HTTP 503 (Service unavailable)
error response with a Retry-After
header set to the value provided by the method
parameter.
Invoking a cancel(...)
method multiple times to cancel request processing has the same
effect as canceling the request processing only once. Invoking a cancel(...)
method on
an asynchronous response instance that has already been cancelled or resumed has no effect and the
method call is ignored while returning true
, in case the request has been cancelled previously.
Otherwise, in case the request has been resumed regularly (using a resume(...) method
) or
resumed due to a time-out, method returns false
.
retryAfter
- a date that indicates how long the service is expected to be unavailable to the
requesting client.true
if the request processing has been cancelled, returns false
in case
the request processing is not suspended
and could not be cancelled
and is not cancelled
already.AsyncResponse.cancel()
,
AsyncResponse.cancel(int)
public boolean isSuspended()
AsyncResponse
true
if this asynchronous response is still suspended and has
not finished processing yet (either by resuming or canceling the response).true
if this asynchronous response is in a suspend state, false
otherwise.AsyncResponse.isCancelled()
,
AsyncResponse.isDone()
public boolean isCancelled()
AsyncResponse
true
if this asynchronous response has been canceled before
completion.true
if this task was canceled before completion.AsyncResponse.isSuspended()
,
AsyncResponse.isDone()
public boolean isDone()
AsyncResponse
true
if the processing of a request this asynchronous response
is bound to is finished.
The request processing may be finished due to a normal termination, a suspend timeout, or
cancellation -- in all of these cases, this method will return true
.
true
if this execution context has finished processing.AsyncResponse.isSuspended()
,
AsyncResponse.isCancelled()
Copyright © 2017 JBoss by Red Hat. All rights reserved.