Concurrency issue with AsyncHandler
-----------------------------------
Key: CXF-2711
URL: https://issues.apache.org/jira/browse/CXF-2711
Project: CXF
Issue Type: Bug
Affects Versions: 2.2.6
Environment: OW2 JOnAS 5.2
Reporter: Guillaume Sauthier
The problem is on the access to the ClientCallback.done boolean
You can have a situation where the client uses the Future object he got from
the dispatch.invokeAsync() method.
It performs an active wait using Future.isDone()
On another Thread, the WS response comes back, and the
JaxwsClientCallback.handlerResponse() is called. The handler provided by the
client is called, so far everything went well. After the
AsyncHandler.handleResponse() invocation, the ClientCallback set the 'done'
boolean to true.
But this value change is never seen by the Future.isDone() invocations!
Because the ClientCallback.done boolean is not 'volatile'.
I've made a try with a volatile 'done' and it works perfectly.
Could it be possible that this simple change makes it to the 2.2.7 ?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.