You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Aki Yoshida (JIRA)" <ji...@apache.org> on 2012/12/19 20:53:13 UTC

[jira] [Commented] (CAMEL-5877) Sporadic Source Conversion issues with CxfPayload

    [ https://issues.apache.org/jira/browse/CAMEL-5877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13536356#comment-13536356 ] 

Aki Yoshida commented on CAMEL-5877:
------------------------------------

Hi Dan,
it looks very good.
thanks.
regards, aki

                
> 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
>            Assignee: Daniel Kulp
>             Fix For: 2.10.4
>
>         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