org.apache.coyote
Class AsyncStateMachine<S>
java.lang.Object
org.apache.coyote.AsyncStateMachine<S>
public class AsyncStateMachine<S>
- extends Object
Manages the state transitions for async requests.
The internal states that are used are:
DISPATCHED - Standard request. Not in Async mode.
STARTING - ServletRequest.startAsync() has been called but the
request in which that call was made has not finished
processing.
STARTED - ServletRequest.startAsync() has been called and the
request in which that call was made has finished
processing.
MUST_COMPLETE - complete() has been called before the request in which
ServletRequest.startAsync() has finished. As soon as that
request finishes, the complete() will be processed.
COMPLETING - The call to complete() was made once the request was in
the STARTED state. May or may not be triggered by a
container thread - depends if start(Runnable) was used
TIMING_OUT - The async request has timed out and is waiting for a call
to complete(). If that isn't made, the error state will
entered.
MUST_DISPATCH - dispatch() has been called before the request in which
ServletRequest.startAsync() has finished. As soon as that
request finishes, the dispatch() will be processed.
DISPATCHING - The dispatch is being processed.
ERROR - Something went wrong.
|----------------->--------------|
| \|/
| |----------<---------------ERROR
| | complete() /|\ |postProcess()
| | error()| |
| | | | |--|timeout()
| | postProcess() | \|/ | \|/ auto
| | |--------------->DISPATCHED<------------------COMPLETING<----|
| | | /|\ | | /|\ |
| | | |--->-------| | |--| |
| | ^ | |startAsync() timeout() |
| | | | | |
| \|/ | | complete() \|/ postProcess() |
| MUST_COMPLETE-<- | ----<------STARTING-->----------------| ^
| /|\ | | | |
| | | | | |
| | ^ |dispatch() | |
| | | | | |
| | | \|/ \|/ complete() |
| | | MUST_DISPATCH STARTED---->-------|
| | | | | |
| | | |postProcess() | |
^ ^ | | dispatch() | |auto
| | | | |--------------------| |
| | | auto \|/ \|/ \|/
| | |---<----DISPATCHING<-----------------TIMING_OUT
| | dispatch() | |
| | | |
| |-------<-------------------------------------<----| |
| complete() |
| |
|----<------------------------<-----------------------------<--|
error()
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AsyncStateMachine
public AsyncStateMachine(Processor<S> processor)
isAsync
public boolean isAsync()
isAsyncDispatching
public boolean isAsyncDispatching()
isAsyncStarted
public boolean isAsyncStarted()
isAsyncTimingOut
public boolean isAsyncTimingOut()
asyncStart
public void asyncStart(AsyncContextCallback asyncCtxt)
asyncPostProcess
public AbstractEndpoint.Handler.SocketState asyncPostProcess()
asyncComplete
public boolean asyncComplete()
asyncTimeout
public boolean asyncTimeout()
asyncDispatch
public boolean asyncDispatch()
asyncDispatched
public void asyncDispatched()
asyncError
public boolean asyncError()
asyncRun
public void asyncRun(Runnable runnable)
recycle
public void recycle()
Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.