diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoap11Header.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoap11Header.java index fc086cb3..fd9dbd7b 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoap11Header.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoap11Header.java @@ -19,6 +19,7 @@ package org.springframework.ws.soap.saaj; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import javax.xml.soap.Node; import javax.xml.soap.SOAPConstants; import javax.xml.soap.SOAPHeader; import javax.xml.soap.SOAPHeaderElement; @@ -43,10 +44,13 @@ class SaajSoap11Header extends SaajSoapHeader implements Soap11Header { List result = new ArrayList(); Iterator iterator = getImplementation().examineAllHeaderElements(getSaajHeader()); while (iterator.hasNext()) { - SOAPHeaderElement saajHeaderElement = (SOAPHeaderElement) iterator.next(); - String headerActor = saajHeaderElement.getActor(); - if (shouldProcess(headerActor, actors)) { - result.add(saajHeaderElement); + Node node = (Node) iterator.next(); + if (node instanceof SOAPHeaderElement) { + SOAPHeaderElement saajHeaderElement = (SOAPHeaderElement) node; + String headerActor = saajHeaderElement.getActor(); + if (shouldProcess(headerActor, actors)) { + result.add(saajHeaderElement); + } } } return new SaajSoapHeaderElementIterator(result.iterator()); diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoap12Header.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoap12Header.java index c6fbf0af..b4bf40a3 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoap12Header.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoap12Header.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.xml.namespace.QName; +import javax.xml.soap.Node; import javax.xml.soap.SOAPConstants; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPHeader; @@ -70,10 +71,13 @@ class SaajSoap12Header extends SaajSoapHeader implements Soap12Header { List result = new ArrayList(); Iterator iterator = getImplementation().examineAllHeaderElements(getSaajHeader()); while (iterator.hasNext()) { - SOAPHeaderElement saajHeaderElement = (SOAPHeaderElement) iterator.next(); - String headerRole = saajHeaderElement.getRole(); - if (shouldProcess(headerRole, roles, isUltimateDestination)) { - result.add(saajHeaderElement); + Node node = (Node) iterator.next(); + if (node instanceof SOAPHeaderElement) { + SOAPHeaderElement saajHeaderElement = (SOAPHeaderElement) node; + String headerRole = saajHeaderElement.getRole(); + if (shouldProcess(headerRole, roles, isUltimateDestination)) { + result.add(saajHeaderElement); + } } } return new SaajSoapHeaderElementIterator(result.iterator());