On 03/22/2012 11:04 AM, David Mansfield wrote:
Hi All,
I'm encountering a problem that is nearly identical to this issue in
jira:
https://issues.apache.org/jira/browse/CXF-3122
which is pretty well described in the subject and in the bug report,
which is marked closed. This issue is apparently from late 2010,
version 2.2 or 2.3 timeframe.
Never a good plan to reply to yourself, but I think I know what was
causing this. I was wrapping the ExecutionException that I got from the
Future.get in another exception (a RuntimeException) and re-throwing.
So the specific semantics seem to be:
- async handler is called twice in the case of a bad response when the
first call results in a RuntimeException being thrown by the
handleResponse method.
After cleaning this up in my code, the framework is no longer calling it
twice.
It still could be considered a framework issue, but not a big deal I guess.
I'm running a client-only on cxf 2.5.2, generated from wsdl,
configured using spring, on jdk 1.6.
My stack traces are different from what is there.
First is:
at
com.cobite.exprts.sea.service.lifecycle.ModifyEntitlementsLifecycleHandler$1AsyncHandler.handleResponse(ModifyEntitlementsLifecycleHandler.java:35)
at
org.apache.cxf.jaxws.JaxwsClientCallback.handleException(JaxwsClientCallback.java:85)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:822)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1627)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1499)
at
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:395)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Second is:
at
com.cobite.exprts.sea.service.lifecycle.ModifyEntitlementsLifecycleHandler$1AsyncHandler.handleResponse(ModifyEntitlementsLifecycleHandler.java:35)
at
org.apache.cxf.jaxws.JaxwsClientCallback.handleException(JaxwsClientCallback.java:85)
at
org.apache.cxf.interceptor.ClientOutFaultObserver.onMessage(ClientOutFaultObserver.java:59)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1504)
at
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:395)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Should I reopen that bug, open a new one , or this is expected
behavior now?
Thanks,
David Mansfield
Cobite, INC.