Thanks Andreas for applying the proper fix.

Thilina

On Fri, Sep 30, 2011 at 12:54 AM, Andreas Veithen <andreas.veit...@gmail.com
> wrote:

> Sorry, but this change is complete nonsense. There is no such thing as
> a "composite element" and moving a node never moves its siblings (but
> only its children). This is actually a bug in the Axiom DOM
> implementation: the detach() method fails to reset the nextSibling
> attribute of the node.
>
> Andreas
>
> On Thu, Sep 29, 2011 at 13:06,  <thilin...@apache.org> wrote:
> > Author: thilinamb
> > Date: Thu Sep 29 11:06:11 2011
> > New Revision: 1177260
> >
> > URL: http://svn.apache.org/viewvc?rev=1177260&view=rev
> > Log:
> > Committing the patch provided by AmilaJ for RAMPART-336.
> >
> > Modified:
> >
>  
> axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
> >
> > Modified:
> axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
> > URL:
> http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java?rev=1177260&r1=1177259&r2=1177260&view=diff
> >
> ==============================================================================
> > ---
> axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
> (original)
> > +++
> axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
> Thu Sep 29 11:06:11 2011
> > @@ -217,6 +217,10 @@ public class Axis2Util {
> >                         // it is a header we have added in rampart eg.
> EncryptedHeader and should
> >                         // be converted to SOAPHeaderBlock for processing
> >                        } else {
> > +                            // First detach element from soap header
> > +                            element.detach();
> > +
> > +                            // add new element
> >                                header =
> soapHeader.addHeaderBlock(element.getLocalName(), element.getNamespace());
> >                                Iterator attrIter =
> element.getAllAttributes();
> >                                while (attrIter.hasNext()) {
> > @@ -231,14 +235,17 @@ public class Axis2Util {
> >                                // retrieve all child nodes (including any
> text nodes)
> >                                // and re-attach to header block
> >                                Iterator children = element.getChildren();
> > -                               while (children.hasNext()) {
> > +
> > +                            // Element is a composite element, in which
> it has many siblings.
> > +                            // All siblings will be added when we add a
> single node.
> > +                            // See ParentNode.insertBefore(Node
> newChild, Node refChild) for
> > +                            // more information.
> > +                               if (children.hasNext()) {
> >                                        OMNode child =
> (OMNode)children.next();
> >                                        children.remove();
> >                                        header.addChild(child);
> >                                }
> > -
> > -                               element.detach();
> > -
> > +
> >                                soapHeader.build();
> >
> >                                header.setProcessed();
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
> For additional commands, e-mail: java-dev-h...@axis.apache.org
>
>


-- 
Thilina Mahesh Buddhika
http://blog.thilinamb.com

Reply via email to