ChainInitiationObserver  lack synchronization which could causes continuations 
to malfunction for some rare scenario
--------------------------------------------------------------------------------------------------------------------

                 Key: CXF-2975
                 URL: https://issues.apache.org/jira/browse/CXF-2975
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.2.10
            Reporter: Freeman Fang
            Assignee: Freeman Fang
             Fix For: 2.3, 2.2.11


If we call continuation.resume in another thread after we call 
continuation.suspend immediately,  we may encounter  a situation where resume 
is called on continuation before the SuspendedInvocationException causes 
PhaseInterceptorChain to change state to 'paused', so that 
ChainInitiationObserver instead of resuming the the PhaseInterceptorChain from 
where it was suspended, it starts it's from the beginning. This is incorrect as 
interceptors that has already been run are called again in this case.

With this attached testcase which expose this problem,  simply use continuation 
api in a jaxws provider, we can see the IncomingMessageCounterInterceptor get 
invoked twice for one incoming messsage.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to