[
https://issues.apache.org/jira/browse/CAMEL-5877?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aki Yoshida updated CAMEL-5877:
-------------------------------
Attachment: camel-cxf-payload-source-20121214.patch
from trunk
> Sporadic Source Conversion issues with CxfPayload
> -------------------------------------------------
>
> Key: CAMEL-5877
> URL: https://issues.apache.org/jira/browse/CAMEL-5877
> Project: Camel
> Issue Type: Bug
> Components: camel-cxf
> Affects Versions: 2.10.3
> Reporter: Aki Yoshida
> Attachments: camel-cxf-payload-source-20121214.patch
>
>
> There is one concrete issue to report and there is an additional point that I
> would like to bring up.
> First, the concrete issue is that CxfEndpoints' findName does not currently
> handle SAXSource. Consequently, the it fails to find the element name when
> the payload source is of SAXSource.
> This issue can be observed sporadically, as there is a chance the Source
> could be SAXSource. Because of the nature of this problem explained below,
> this issue may be observed non-deterministically and consequently it is not
> often observed.
> What is happening is that, when a conversion to CxfPayload is triggered,
> CxfPayloadConverter's convertTo method arbitrarily picks a converter that can
> convert the input to Source. The code goes into BaseTypeConverterRegistry and
> searches for a matching converter in its type mappings' entry set. As this
> set has no deterministic ordering and there are several matching converters,
> an arbitrary converter is picked up. THe chance of getting the SAXSource
> converter is small but not zero. Therefore, when this happens, CxfEndpoint's
> findName is not finding the element name as there is no handling for
> SAXSource. Interestingly, the DOMSource converter is the most frequently
> picked converter, followed by the StaxSource converter.
> So, SAXSource handling needs to be added in CXFEndpoint's findName method.
> The second point is about the preferred Source held in CxfPayload. I think
> for jdk 1.6 or above, StAXSource could be the preferred source. In that case,
> we can use the StAXSource converter instead of arbitrarily picking one of the
> Source converters. We can adjust CxfPayloadConverter's convertTo method to
> look up for the StAXSource converter first.
> I am attaching a proposed patch (the correction for the first issue and the
> suggestion regarding the second point, assuming StAXSource is preferred.).
> Could you review it and comment on it?
> Thanks.
> Regards, aki
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira