If the previous
Invocation is null
, then a new transaction is created; otherwise, this Invocation will use the same transaction as the previous
Invocation.
The status of this Invocation MUST be INIT
. If there is a previous Invocation, that Invocation MUST have a status of ACTIVE
and this Invocation MUST require a response.
Candidate content handlers are found as described in {@link #findHandler findHandler}. If any handlers are found, one is selected for this Invocation. The choice of content handler is implementation dependent.
A copy of the Invocation is made, the status is set to ACTIVE
and then queued to the target content handler. If the invoked content handler is not running, it MUST be started as described in Invoking a Content Handler.
The status of this Invocation is set to WAITING
. If there is a non-null previous
Invocation, its status is set to HOLD
. The previous
Invocation is saved in the waiting Invocation. It can be retrieved by the getPrevious
method.
The calling thread blocks while the content handler is being determined. If a network access is needed, there may be an associated delay.
@param invocation the Invocation containing the target ID, type, URL,actions, arguments, and responseRequired parameters; MUST NOT be null
@param previous a previous Invocation for this Invocation;may be null
@return true
if the application MUSTvoluntarily exit to allow the target content handler to be started; false
otherwise
@exception IllegalArgumentException is thrown if:
null
,null
references, or invocation.getResponseRequired
method returns false
and previous
is non-nullNO_REGISTERED_HANDLER
if there is no registered content handler that matches the requested ID, type, URL, and action
@exception IllegalStateException is thrown if the status of thisInvocation is not INIT
or if the status of the previous Invocation, if any, is not ACTIVE
@exception NullPointerException is thrown if theinvocation
is null
@exception SecurityException if access to the content is not permitted
|
|