Camel-cxf does not properly populate MessageContentList for PAYLOAD mode
------------------------------------------------------------------------

                 Key: CAMEL-2802
                 URL: https://issues.apache.org/activemq/browse/CAMEL-2802
             Project: Apache Camel
          Issue Type: Bug
          Components: camel-cxf
            Reporter: William Tam
            Assignee: William Tam
             Fix For: 2.4.0


Currently, CxfEndpoint.CamelCxfClientImpl does not leave place holder for SOAP 
header in MessageContentList.  It could be a problem when CXF tries to retrieve 
the values in the MessageContentList.  Without the placeholder in place, SOAP 
body part can be mistakenly retrieved as SOAP header.  This patch should fix 
the problem.  Note: The fix depends on CXF-2837 (Add null pointer check in 
SoapOutInterceptor) which will be delivered in CXF 2.2.10.

Index: src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
===================================================================
--- src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java       
(revision 43)
+++ src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java       
(working copy)
@@ -513,8 +513,9 @@
                 MessageContentsList content = new MessageContentsList();
                 int i = 0;
                 
-                for (MessagePartInfo partInfo : 
boi.getOperationInfo().getInput().getMessageParts()) {
-                    if (elements.size() > i) {
+                for (MessagePartInfo partInfo : 
boi.getOperationInfo().getInput().getMessageParts()) {                 
+                    if (elements.size() > i && 
partInfo.getConcreteName().getLocalPart()
+                        .equals(elements.get(i).getLocalName())) {
                         content.put(partInfo, elements.get(i++));
                     }
                 }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to