SWS-274
This commit is contained in:
@@ -16,7 +16,9 @@
|
||||
|
||||
package org.springframework.ws.soap.saaj;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.soap.SOAPElement;
|
||||
import javax.xml.soap.SOAPException;
|
||||
@@ -43,12 +45,12 @@ abstract class SaajSoapHeader extends SaajSoapElement implements SoapHeader {
|
||||
|
||||
public Iterator examineAllHeaderElements() throws SoapHeaderException {
|
||||
Iterator iterator = getImplementation().examineAllHeaderElements(getSaajHeader());
|
||||
return new SaajSoapHeaderElementIterator(iterator);
|
||||
return createSaajSoapHeaderElementIterator(iterator);
|
||||
}
|
||||
|
||||
public Iterator examineMustUnderstandHeaderElements(String actorOrRole) throws SoapHeaderException {
|
||||
Iterator iterator = getImplementation().examineMustUnderstandHeaderElements(getSaajHeader(), actorOrRole);
|
||||
return new SaajSoapHeaderElementIterator(iterator);
|
||||
return createSaajSoapHeaderElementIterator(iterator);
|
||||
}
|
||||
|
||||
public SoapHeaderElement addHeaderElement(QName name) throws SoapHeaderException {
|
||||
@@ -82,6 +84,17 @@ abstract class SaajSoapHeader extends SaajSoapElement implements SoapHeader {
|
||||
return getImplementation().getResult(getSaajHeader());
|
||||
}
|
||||
|
||||
private Iterator createSaajSoapHeaderElementIterator(Iterator iterator) {
|
||||
List result = new ArrayList();
|
||||
while (iterator.hasNext()) {
|
||||
Object o = iterator.next();
|
||||
if (o instanceof SOAPHeaderElement) {
|
||||
result.add(o);
|
||||
}
|
||||
}
|
||||
return new SaajSoapHeaderElementIterator(result.iterator());
|
||||
}
|
||||
|
||||
protected static class SaajSoapHeaderElementIterator implements Iterator {
|
||||
|
||||
private final Iterator iterator;
|
||||
|
||||
Reference in New Issue
Block a user