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

Daniel Kulp resolved CXF-2033.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.5
                   2.0.11

> StaxUtils assumes DOM Node::appendChild(c) returns the passed-in child
> ----------------------------------------------------------------------
>
>                 Key: CXF-2033
>                 URL: https://issues.apache.org/jira/browse/CXF-2033
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.4
>         Environment: OSX, JBoss AS5, JDK6
>            Reporter: bob mcwhirter
>            Assignee: Daniel Kulp
>             Fix For: 2.0.11, 2.1.5
>
>   Original Estimate: 0.05h
>  Remaining Estimate: 0.05h
>
> StaxUtils does XML manipulation:
> http://svn.apache.org/repos/asf/cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
> in startElement(...) it builds a fragment and attaches it to a parent using 
> appendChild(e):
>         parent.appendChild(e);
> When using this with the JBoss AS5 SOAP/DOM implementation, a SOAPBody 
> appending a SOAPElement will return a different object than the one 
> passed-in.  (In JBoss's case, you get back a SOAPBodyElement that's quite 
> similar to, but distinct from, the SOAPElement you passed to 
> appendChild(...)).
> The DOM spec says that appendChild(...) returns the node that was appended, 
> which implies (to me, and at least 1 other JBoss developer) that it may be 
> different than the one you handed in.
> This only becomes a problem when later in startElement(...), code calls 
> e.getParent() to perform some logic.  This fails with JBoss DOM, since the 
> 'e' StaxUtils is holding was detached from its own parent, and replaced with 
> a different element node.
> The fix is simply to assign the result of appendChild(e) back to e itself:
>     e = (Element) parent.appendChild(e);
> This causes StaxUtils not to freak out the JBoss DOM.

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

Reply via email to