Author: ay Date: Tue Sep 13 12:06:05 2011 New Revision: 1170134 URL: http://svn.apache.org/viewvc?rev=1170134&view=rev Log: Merged revisions 1170107 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.4.x-fixes
................ r1170107 | ay | 2011-09-13 12:36:42 +0200 (Tue, 13 Sep 2011) | 9 lines Merged revisions 1170066 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1170066 | ay | 2011-09-13 09:35:29 +0200 (Tue, 13 Sep 2011) | 1 line [CXF-3788] fixing interop issues caused by this earlier patch ........ ................ Modified: cxf/branches/2.3.x-fixes/ (props changed) cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Tue Sep 13 12:06:05 2011 @@ -0,0 +1,2 @@ +/cxf/branches/2.4.x-fixes:1170107 +/cxf/trunk:1170066 Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java?rev=1170134&r1=1170133&r2=1170134&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java (original) +++ cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java Tue Sep 13 12:06:05 2011 @@ -599,6 +599,18 @@ public class ClientImpl } throw ex; } + + //REVISIT + // - use a protocol neutral no-content marker instead of 202? + // - move the decoupled destination property name into api + Integer responseCode = (Integer)exchange.get(Message.RESPONSE_CODE); + if (null != responseCode && 202 == responseCode) { + Endpoint ep = exchange.getEndpoint(); + if (null != ep && null != ep.getEndpointInfo() && null == ep.getEndpointInfo(). + getProperty("org.apache.cxf.ws.addressing.MAPAggregator.decoupledDestination")) { + return null; + } + } // Wait for a response if we need to if (oi != null && !oi.getOperationInfo().isOneWay()) { Modified: cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=1170134&r1=1170133&r2=1170134&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original) +++ cxf/branches/2.3.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Tue Sep 13 12:06:05 2011 @@ -59,6 +59,8 @@ import org.apache.cxf.configuration.jsse import org.apache.cxf.configuration.security.AuthorizationPolicy; import org.apache.cxf.configuration.security.CertificateConstraintsType; import org.apache.cxf.configuration.security.ProxyAuthorizationPolicy; +import org.apache.cxf.endpoint.ClientCallback; +import org.apache.cxf.endpoint.Endpoint; import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.helpers.HttpHeaderHelper; import org.apache.cxf.helpers.IOUtils; @@ -2318,6 +2320,15 @@ public class HTTPConduit // oneway operation or decoupled MEP without // partial response connection.getInputStream().close(); + ClientCallback cc = exchange.get(ClientCallback.class); + if (null != cc) { + //REVISIT move the decoupled destination property name into api + Endpoint ep = exchange.getEndpoint(); + if (null != ep && null != ep.getEndpointInfo() && null == ep.getEndpointInfo(). + getProperty("org.apache.cxf.ws.addressing.MAPAggregator.decoupledDestination")) { + cc.handleResponse(null, null); + } + } return; } } else {
