You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/03/02 22:07:01 UTC
svn commit: r1296462 - in /cxf/branches/2.5.x-fixes: ./
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/
systests/jaxws/ systests/jaxws/src/test/java/org/apache/cxf/systest/provider/
systests/jaxws/src/test/resources/wsdl_systest_jaxws/
Author: dkulp
Date: Fri Mar 2 21:07:00 2012
New Revision: 1296462
URL: http://svn.apache.org/viewvc?rev=1296462&view=rev
Log:
Merged revisions 1296454 via svn merge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1296454 | dkulp | 2012-03-02 15:53:53 -0500 (Fri, 02 Mar 2012) | 2 lines
[CXF-4130] Fix problems with Providers writing bodies into headers
Patch from Seumas Soltysik applied
........
Added:
cxf/branches/2.5.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/CXF4130Provider.java
- copied unchanged from r1296454, cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/CXF4130Provider.java
cxf/branches/2.5.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/CXF4130Test.java
- copied unchanged from r1296454, cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/CXF4130Test.java
cxf/branches/2.5.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/cxf4130data.txt
- copied unchanged from r1296454, cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/cxf4130data.txt
cxf/branches/2.5.x-fixes/systests/jaxws/src/test/resources/wsdl_systest_jaxws/cxf4130.wsdl
- copied unchanged from r1296454, cxf/trunk/systests/jaxws/src/test/resources/wsdl_systest_jaxws/cxf4130.wsdl
Modified:
cxf/branches/2.5.x-fixes/ (props changed)
cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
cxf/branches/2.5.x-fixes/systests/jaxws/pom.xml
Propchange: cxf/branches/2.5.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java?rev=1296462&r1=1296461&r2=1296462&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java (original)
+++ cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java Fri Mar 2 21:07:00 2012
@@ -54,6 +54,7 @@ import org.apache.cxf.message.MessageImp
import org.apache.cxf.message.MessageUtils;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
+import org.apache.cxf.service.model.BindingMessageInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
import org.apache.cxf.staxutils.OverlayW3CDOMStreamWriter;
import org.apache.cxf.staxutils.StaxUtils;
@@ -187,7 +188,7 @@ public class MessageModeOutInterceptor e
public void handleMessage(SoapMessage message) throws Fault {
MessageContentsList list = (MessageContentsList)message.getContent(List.class);
- Object o = list.get(0);
+ Object o = list.remove(0);
SOAPMessage soapMessage = null;
if (o instanceof SOAPMessage) {
@@ -221,7 +222,9 @@ public class MessageModeOutInterceptor e
// Replace stax writer with DomStreamWriter
message.setContent(XMLStreamWriter.class, writer);
message.setContent(SOAPMessage.class, soapMessage);
-
+
+ BindingOperationInfo bop = message.getExchange().get(BindingOperationInfo.class);
+
DocumentFragment frag = soapMessage.getSOAPPart().createDocumentFragment();
try {
Node body = soapMessage.getSOAPBody();
@@ -231,7 +234,25 @@ public class MessageModeOutInterceptor e
frag.appendChild(nd);
nd = soapMessage.getSOAPBody().getFirstChild();
}
- list.set(0, frag);
+
+ int index = 0;
+
+ boolean client = isRequestor(message);
+ BindingMessageInfo bmsg = null;
+
+ if (client) {
+ bmsg = bop.getInput();
+ } else if (bop.getOutput() != null) {
+ bmsg = bop.getOutput();
+ }
+ if (bmsg != null && bmsg.getMessageParts() != null
+ && bmsg.getMessageParts().size() > 0) {
+ index = bmsg.getMessageParts().get(0).getIndex();
+ }
+
+ list.set(index, frag);
+
+
//No need to buffer this as we're already a DOM,
//but only do so if someone hasn't actually configured this
Object buffer = message
@@ -242,7 +263,6 @@ public class MessageModeOutInterceptor e
} catch (Exception ex) {
throw new Fault(ex);
}
- BindingOperationInfo bop = message.getExchange().get(BindingOperationInfo.class);
if (bop != null && bop.isUnwrapped()) {
bop = bop.getWrappedOperation();
message.getExchange().put(BindingOperationInfo.class, bop);
Modified: cxf/branches/2.5.x-fixes/systests/jaxws/pom.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/systests/jaxws/pom.xml?rev=1296462&r1=1296461&r2=1296462&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/systests/jaxws/pom.xml (original)
+++ cxf/branches/2.5.x-fixes/systests/jaxws/pom.xml Fri Mar 2 21:07:00 2012
@@ -197,6 +197,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
</dependency>