CTS tests jaxws.ee.w2j.document.literal.async.client.invokeAsyncCallbackTest (for pojo, ejb and servlet client ) fail ocassionally. The reason being....
In the invokeAsync method of JaxWsClientProxy class, ClientCallbacks handleMessage method is overridden. In this method first ClientCallbacks field done (boolean) is set to true and then handlers handleResponse(Response<?>) is called. In the CTS tests, if a ClientCallback.get() is called in between these two requests, a NullPointerException is thrown as the handlers state remains unchanged.
Suggested Fix : synchronize the ClientCallbacks handleResponse in the JaxWsClientProxy.
Also, ClientCallback class is a not thread safe so any state change should be done synchronously.