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

Rene Avontuur updated CAMEL-6922:
---------------------------------

    Attachment: NodeListToDocumentTest.java

I wrote a unit test for this issue, which is attached as 
NodeListToDoumentTest.java.
It shows that ElementNSImpl implements the NodeList interface, the responsible 
superclass is NodeImpl.
This unit test passes on my machine, running an Oracle JDK.

The same unit test fails, after making the following change in
class BaseTypeConverterRegistry:

            // try the interfaces (in reverse order)
            for (int i=fromType.getInterfaces().length-1;i>=0;i--) {
                Class<?> type = fromType.getInterfaces()[i];

instead of:
            // try the interfaces
            for (Class<?> type : fromType.getInterfaces()) 

This may explain why a different JDK may have an issue with this conversion.

> XmlConverter cannot convert from ElementNSImpl to Document
> ----------------------------------------------------------
>
>                 Key: CAMEL-6922
>                 URL: https://issues.apache.org/jira/browse/CAMEL-6922
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.11.2
>         Environment: HP-UX, JDK 6.14, 7.06
>            Reporter: Arseniy Tashoyan
>            Priority: Minor
>              Labels: converter, dom, xml
>         Attachments: NodeListToDocumentTest.java
>
>
> XmlConvertor cannot convert from org.apache.xerces.dom.ElementNSImpl to 
> org.w3c.dom.Document. Class ElementNSImpl implements both interfaces 
> org.w3c.dom.Node and org.w3c.dom.NodeList. While type converter lookup 
> iterates from ElementNSImpl through it's superclasses and implemented 
> interfaces, it reaches NodeList first. Therefore the
> {color:green}
> Node toDOMNodeFromSingleNodeList(NodeList)
> {color}
> method is selected for conversion. However this method returns null for any 
> NodeList with more than one node. This leads to null in a message's body.
> This issue is not detected on Linux, because on Oracle JDK lookup reaches 
> Node before NodeList and the
> {color:green}
> Document toDOMDocument(Node)
> {color}
> method is selected for conversion.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to