[ 
https://issues.apache.org/jira/browse/CXF-6340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14487157#comment-14487157
 ] 

Sergey Beryozkin commented on CXF-6340:
---------------------------------------

Thanks, I've updated the code a bit.
The API docs are somewhat difficult to read, but basically, if the request was 
not cancelled and is not suspended - then it is false; if it was cancelled or 
resumed (*as part of the cancel process where the suspended thread has to be 
resumed*) then it is the idempotent 'true'. I've tuned the code and now it 
should be fine. Thanks

> Return value of AsyncResponseImpl.cancel() not follow JAXRS 2.0 javadoc
> -----------------------------------------------------------------------
>
>                 Key: CXF-6340
>                 URL: https://issues.apache.org/jira/browse/CXF-6340
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.0.4
>            Reporter: Wei Zhang
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> According to JAX-RS2.0 javadoc:
> 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. 
> But current implementation of AsyncResponseImpl.cancel() return false when 
> response instance has already been cancelled or resumed.
> In method doCancel, found:
>     private synchronized boolean doCancel(String retryAfterHeader) {
>         if (!isSuspended()) {
>             return false;        



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to