Author: midon
Date: Fri Jul 10 23:02:44 2009
New Revision: 793138

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

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

Modified: 
ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java?rev=793138&r1=793137&r2=793138&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/wsdl/WsdlUtils.java
 Fri Jul 10 23:02:44 2009
@@ -49,6 +49,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>
@@ -307,12 +308,12 @@
 
     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/branches/APACHE_ODE_1.X/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java?rev=793138&r1=793137&r2=793138&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/utils/src/test/java/org/apache/ode/utils/wsdl/WsdlUtilsTest.java
 Fri Jul 10 23:02:44 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>
@@ -204,4 +205,12 @@
         mimeContent = 
WsdlUtils.getMimeContent(operation.getBindingInput().getExtensibilityElements());
         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/branches/APACHE_ODE_1.X/utils/src/test/resources/wsdl-utils.wsdl
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/utils/src/test/resources/wsdl-utils.wsdl?rev=793138&r1=793137&r2=793138&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/utils/src/test/resources/wsdl-utils.wsdl 
(original)
+++ ode/branches/APACHE_ODE_1.X/utils/src/test/resources/wsdl-utils.wsdl Fri 
Jul 10 23:02:44 2009
@@ -26,6 +26,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"/>
@@ -60,6 +61,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