You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2009/03/05 06:13:10 UTC
svn commit: r750317 - in /cxf/branches/2.1.x-fixes: ./
rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
Author: ffang
Date: Thu Mar 5 05:13:09 2009
New Revision: 750317
URL: http://svn.apache.org/viewvc?rev=750317&view=rev
Log:
Merged revisions 749966 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r749966 | ffang | 2009-03-04 19:20:13 +0800 (Wed, 04 Mar 2009) | 1 line
[CXF-2082]client using decoupled ws-addressing with async handler hang from time to time
........
Modified:
cxf/branches/2.1.x-fixes/ (props changed)
cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=750317&r1=750316&r2=750317&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Thu Mar 5 05:13:09 2009
@@ -51,9 +51,11 @@
import org.apache.cxf.configuration.security.ProxyAuthorizationPolicy;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.helpers.HttpHeaderHelper;
+import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.helpers.LoadingByteArrayOutputStream;
import org.apache.cxf.io.AbstractThresholdOutputStream;
import org.apache.cxf.io.CacheAndWriteOutputStream;
+import org.apache.cxf.io.CachedOutputStream;
import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.ExchangeImpl;
import org.apache.cxf.message.Message;
@@ -2130,7 +2132,19 @@
inMessage.remove(AbstractHTTPDestination.HTTP_RESPONSE);
inMessage.remove(Message.ASYNC_POST_RESPONSE_DISPATCH);
- incomingObserver.onMessage(inMessage);
+ //cache this inputstream since it's defer to use in case of async
+ try {
+ InputStream in = inMessage.getContent(InputStream.class);
+ if (in != null) {
+ CachedOutputStream cos = new CachedOutputStream();
+ IOUtils.copy(in, cos);
+ inMessage.setContent(InputStream.class, cos.getInputStream());
+ }
+ incomingObserver.onMessage(inMessage);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
}
}