[ https://issues.apache.org/activemq/browse/CAMEL-2802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on CAMEL-2802 started by William Tam. > 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.