Author: midon
Date: Fri Jul 10 23:03:42 2009
New Revision: 793140

URL: http://svn.apache.org/viewvc?rev=793140&view=rev
Log:
avoid ConcurrentModificationException

Modified:
    ode/trunk/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java
    ode/trunk/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java
    ode/trunk/utils/src/test/resources/wsdl-utils.wsdl

Modified: ode/trunk/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java?rev=793140&r1=793139&r2=793140&view=diff
==============================================================================
--- ode/trunk/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java 
(original)
+++ ode/trunk/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java Fri 
Jul 10 23:03:42 2009
@@ -51,6 +51,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Iterator;
 
 /**
  * @author <a href="mailto:[email protected]";>Alexis Midon</a>
@@ -316,12 +317,12 @@
     @SuppressWarnings("unchecked")
     public static Collection<UnknownExtensibilityElement> getHttpHeaders(List 
extensibilityElements) {
         final Collection<UnknownExtensibilityElement> unknownExtElements = 
CollectionsX.filter(extensibilityElements, UnknownExtensibilityElement.class);
-        for (UnknownExtensibilityElement extensibilityElement : 
unknownExtElements) {
-            final Element e = extensibilityElement.getElement();
+        for (Iterator<UnknownExtensibilityElement> iterator = 
unknownExtElements.iterator(); iterator.hasNext();) {
+            Element e = iterator.next().getElement();
             // keep only the header elements
             if 
(!Namespaces.ODE_HTTP_EXTENSION_NS.equalsIgnoreCase(e.getNamespaceURI())
-                    || 
!"header".equals(extensibilityElement.getElement().getLocalName())) {
-                unknownExtElements.remove(extensibilityElement);
+                    || !"header".equals(e.getLocalName())) {
+                iterator.remove();
             }
         }
         return unknownExtElements;

Modified: 
ode/trunk/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java?rev=793140&r1=793139&r2=793140&view=diff
==============================================================================
--- ode/trunk/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java 
(original)
+++ ode/trunk/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java 
Fri Jul 10 23:03:42 2009
@@ -36,6 +36,7 @@
 import java.net.URL;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Collection;
 
 /**
  * @author <a href="mailto:[email protected]";>Alexis Midon</a>
@@ -212,4 +213,12 @@
         assertNull("No content-type expected here!", mimeContent);
 
     }
+
+     public void testGetHeaders() {
+        Binding binding = definition.getBinding(new 
QName("http://axis2.ode.apache.org";, "DummyServiceHttpBinding"));
+        BindingOperation operation = binding.getBindingOperation("hello", 
null, null);
+        Collection headers = 
WsdlUtils.getHttpHeaders(operation.getBindingOutput().getExtensibilityElements());
+        assertNotNull("A header is expected!", headers);
+        assertTrue("A header is expected!", headers.size()==1);
+    }
 }

Modified: ode/trunk/utils/src/test/resources/wsdl-utils.wsdl
URL: 
http://svn.apache.org/viewvc/ode/trunk/utils/src/test/resources/wsdl-utils.wsdl?rev=793140&r1=793139&r2=793140&view=diff
==============================================================================
--- ode/trunk/utils/src/test/resources/wsdl-utils.wsdl (original)
+++ ode/trunk/utils/src/test/resources/wsdl-utils.wsdl Fri Jul 10 23:03:42 2009
@@ -8,6 +8,7 @@
                   xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
                   xmlns:xs="http://www.w3.org/2001/XMLSchema";
                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
+                  xmlns:odex="http://www.apache.org/ode/type/extension/http";
                   targetNamespace="http://axis2.ode.apache.org";>
     <wsdl:message name="helloRequest">
         <wsdl:part name="TestPart" type="xs:string"/>
@@ -42,6 +43,9 @@
             </wsdl:input>
             <wsdl:output>
                 <mime:content type="text/xml" part="hello"/>
+                <!-- dummy headers to test getHeaders() -->
+                <odex:header name="Age" part="age_part"/>                
+                <odex:foo name="Age" part="age_part"/>                
             </wsdl:output>
         </wsdl:operation>
     </wsdl:binding>


Reply via email to