You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "David Carver (JIRA)" <ji...@apache.org> on 2010/04/06 01:16:27 UTC

[jira] Commented: (ODE-663) DOMUtils.cloneNode results in invalid namespace declaration

    [ https://issues.apache.org/jira/browse/ODE-663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12853591#action_12853591 ] 

David Carver commented on ODE-663:
----------------------------------

DOMUtils.cloneNode could probably be simplified to do the following:

public static Node cloneNode(Document document, Node sourceNode) {
    	Node clonedNode = null;
    	
    	if (document != null) {
    	    clonedNode = document.importNode(sourceNode, true);
    	} else {
    	    clonedNode = sourceNode.cloneNode(true);
    	}
    	
    	return clonedNode;
}

Which does what is need.  importNode will clone and bring in the node into a new document, with out hurting the original source document.   If there is no document, then just clone it.

I'll attach a proposed patch.

> DOMUtils.cloneNode results in invalid namespace declaration
> -----------------------------------------------------------
>
>                 Key: ODE-663
>                 URL: https://issues.apache.org/jira/browse/ODE-663
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.3.3, 1.3.4
>            Reporter: Mark Ford
>            Assignee: Karthick Sankarachary
>            Priority: Critical
>             Fix For: 1.3.5
>
>
> The DOMUtils.cloneNode code doesn't handle default namespace declarations correctly when processing an XQuery result from Saxon.
> For example:
> <ns1:parent xmlns:ns1="abc">
>    <ns1:child xmlns="def">
>       <ns2:nestedChild xmlns:ns2="def"/>
>    </ns1:child>
> </ns1:parent>
> results in:
> <ns1:parent xmlns:ns1="abc">
>    <ns1:child xmlns:xmlns="def">
>       <ns2:nestedChild xmlns:ns2="def"/>
>    </ns1:child>
> </ns1:parent>
> Notice that the default namespace has been rewritten as xmlns:xmlns which is invalid. 
> Granted the above example is a bit odd, but strange things can happen when passing nodes in and out of XSLT and XQuery with respect to namespace declarations.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.