From 470f6db9003c629434f3e75e34a54082fffa15f9 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Fri, 1 Feb 2008 00:56:10 +0000 Subject: [PATCH] SWS-274 --- .../ws/soap/saaj/SaajSoapHeader.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeader.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeader.java index 6abbcb5f..3c5b2106 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeader.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeader.java @@ -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;