This is an automated email from the ASF dual-hosted git repository. billblough pushed a commit to branch 1_5 in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
commit f163826867abe048602e8afe3ecdf5758f0cc3fd Author: Andreas Veithen <veit...@apache.org> AuthorDate: Sun Mar 11 14:22:20 2012 +0000 Merged r1173869 and r1299356 to the 1.5 branch. --- .../adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java | 4 ++-- .../test/org/apache/axis2/databinding/utils/MultirefHelperTest.java | 1 + .../apache/axis2/handlers/addressing/AddressingInFaultHandler.java | 1 + .../jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java | 3 +++ modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java | 6 ++---- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java b/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java index 073484d..80d631a 100644 --- a/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java +++ b/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java @@ -146,8 +146,8 @@ public class MultirefHelper { OMElement omElement = (OMElement)childs.next(); OMAttribute id = omElement.getAttribute(new QName("id")); if (id != null) { - omElement.build(); - elementMap.put(id.getAttributeValue(), omElement.detach()); + childs.remove(); + elementMap.put(id.getAttributeValue(), omElement); } } filledTable = true; diff --git a/modules/adb/test/org/apache/axis2/databinding/utils/MultirefHelperTest.java b/modules/adb/test/org/apache/axis2/databinding/utils/MultirefHelperTest.java index 74a2253..27b9561 100644 --- a/modules/adb/test/org/apache/axis2/databinding/utils/MultirefHelperTest.java +++ b/modules/adb/test/org/apache/axis2/databinding/utils/MultirefHelperTest.java @@ -111,6 +111,7 @@ public class MultirefHelperTest extends TestCase { OMElement omElement = null; for (Iterator iter = generatedElement.getChildElements();iter.hasNext();){ omElement = (OMElement) iter.next(); + iter.remove(); soapEnvelope.getBody().addChild(omElement); } diff --git a/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java b/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java index 8efd4a5..4f4f682 100644 --- a/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java +++ b/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java @@ -70,6 +70,7 @@ public class AddressingInFaultHandler extends AbstractHandler implements Address Iterator i = element.getChildElements(); while (i.hasNext()) { OMElement detailElement = (OMElement)i.next(); + i.remove(); detail.addDetailEntry(detailElement); } } diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java index 4040241..b43278c 100644 --- a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java +++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java @@ -457,6 +457,9 @@ class XMLSpineImpl implements XMLSpine { // the requested namespace/localPart if (om.getNamespace().getNamespaceURI().equals(namespace) && om.getLocalName().equals(localPart)) { + // _getBlockFromOMElement may replace the current element; move the iterator to the + // next element to avoid ConcurrentModificationException + it.hasNext(); Block block = _getBlockFromOMElement(om, context, blockFactory, false); blocks.add(block); } diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java index 5e1e293..b5293ae 100644 --- a/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java +++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java @@ -518,10 +518,8 @@ public class SOAPElementImpl extends NodeImplEx implements SOAPElement { //We will get all the children and iteratively call the detach() on all of 'em. Iterator childIter = element.getChildElements(); while (childIter.hasNext()) { - Object o = childIter.next(); - if (o instanceof org.apache.axiom.om.OMNode) { - ((org.apache.axiom.om.OMNode)o).detach(); - } + childIter.next(); + childIter.remove(); } }