You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by bi...@apache.org on 2020/04/14 20:02:35 UTC

[axis-axis2-java-core] 23/38: Merged r1173869 and r1299356 to the 1.5 branch.

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 <ve...@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();
         }
     }