You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "William Tam (JIRA)" <ji...@apache.org> on 2010/06/09 21:26:52 UTC
[jira] Resolved: (CAMEL-2802) Camel-cxf does not properly populate
MessageContentList for PAYLOAD mode
[ 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.