You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by David Mansfield <cx...@dm.cobite.com> on 2012/03/22 16:04:20 UTC

async handler called twice in case of bad response (CXF-3122)

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.

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.



Re: async handler called twice in case of bad response (CXF-3122)

Posted by David Mansfield <cx...@dm.cobite.com>.

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.
>
>