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>