[ https://issues.apache.org/jira/browse/CXF-2711?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Sauthier updated CXF-2711: ------------------------------------ Attachment: CXF-2711.patch Set ClientCallback.done field as volatile. > 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 > Attachments: CXF-2711.patch > > > 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.