[
https://issues.apache.org/jira/browse/CXF-5763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14020236#comment-14020236
]
Daniel Kulp commented on CXF-5763:
----------------------------------
Is there any way to create a testcase for this? I'm most interested in the
code around the WebClient calls and the size of the messages.
I'm not able to reproduce this at all. The only ways I can see this exception
occurring is if close() is called multiple times on the output stream. That
would keep the "chunked" set to false but replace the wrappedStream with the
anonymous version.
However, that could potentially cause all kinds of other problems which is why
I'd really like a test case so I can breakpoint in the close to see where that
is happening.
> ClassCast Exception in AsyncHTTPConduit$AsyncWrappedOutputStream.close()
> method when using async and HttpAsyncClient
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: CXF-5763
> URL: https://issues.apache.org/jira/browse/CXF-5763
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Affects Versions: 3.0.0
> Environment: Linux
> Java 7
> Reporter: Anthony Communier
> Attachments: TestUnsubscribeSM-output.txt
>
>
> Sometimes there is an error on connection close when using async client
> javax.ws.rs.ProcessingException: java.lang.ClassCastException:
> org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduit$AsyncWrappedOutputStream$1
> cannot be cast to org.apache.cxf.io.CachedOutputStream
> at
> org.apache.cxf.jaxrs.client.WebClient.handleAsyncResponse(WebClient.java:1010)
> [cxf-rt-rs-client-3.0.0.jar:3.0.0]
> at org.apache.cxf.jaxrs.client.WebClient.access$100(WebClient.java:81)
> [cxf-rt-rs-client-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.jaxrs.client.WebClient$ClientAsyncResponseInterceptor.handleMessage(WebClient.java:1298)
> ~[cxf-rt-rs-client-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
> ~[cxf-core-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.jaxrs.client.ClientMessageObserver.onMessage(ClientMessageObserver.java:56)
> ~[cxf-rt-rs-client-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1154)
> ~[cxf-rt-transports-http-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
> ~[cxf-core-3.0.0.jar:3.0.0]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> ~[na:1.7.0_25]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> ~[na:1.7.0_25]
> at
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
> ~[cxf-core-3.0.0.jar:3.0.0]
> at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
> Caused by: java.lang.ClassCastException:
> org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduit$AsyncWrappedOutputStream$1
> cannot be cast to org.apache.cxf.io.CachedOutputStream
> at
> org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduit$AsyncWrappedOutputStream.close(AsyncHTTPConduit.java:397)
> ~[cxf-rt-transports-http-hc-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> ~[cxf-core-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:638)
> ~[cxf-rt-transports-http-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.endpoint.AbstractConduitSelector.complete(AbstractConduitSelector.java:209)
> ~[cxf-core-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.jaxrs.client.AbstractClient.preProcessResult(AbstractClient.java:534)
> ~[cxf-rt-rs-client-3.0.0.jar:3.0.0]
> at
> org.apache.cxf.jaxrs.client.WebClient.handleAsyncResponse(WebClient.java:1005)
> [cxf-rt-rs-client-3.0.0.jar:3.0.0]
> ... 10 common frames omitted
--
This message was sent by Atlassian JIRA
(v6.2#6252)