This is an automated email from the ASF dual-hosted git repository. billblough pushed a commit to branch 1_5_x in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-rampart.git
commit c3c59c88d62831488757e58930e8a5666c68b053 Author: Thilina Mahesh Buddhika <thilin...@apache.org> AuthorDate: Thu Sep 29 11:12:10 2011 +0000 Committing the patch provided by AmilaJ for RAMPART-336. --- .../src/main/java/org/apache/rampart/util/Axis2Util.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java b/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java index 2de1406..7874475 100644 --- a/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java +++ b/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java @@ -194,6 +194,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()) { @@ -206,14 +210,17 @@ public class Axis2Util { header.declareNamespace(ns); } Iterator children = element.getChildElements(); - 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();