[ 
https://issues.apache.org/activemq/browse/CAMEL-2802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

William Tam resolved CAMEL-2802.
--------------------------------

    Resolution: Fixed

Committed revision 953122.

> 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.
> {code}
> 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++));
>                      }
>                  }
> {code}

-- 
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