diff -r 8c0b6bccfe47 -r 0989ad8c0860 src/share/jaxws_classes/com/sun/xml/internal/ws/protocol/soap/MUTube.java --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/protocol/soap/MUTube.java Thu Apr 04 19:05:24 2013 -0700 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/protocol/soap/MUTube.java Tue Apr 09 14:51:13 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,14 +29,12 @@ import static com.sun.xml.internal.ws.api.SOAPVersion.SOAP_11; import static com.sun.xml.internal.ws.api.SOAPVersion.SOAP_12; import com.sun.xml.internal.ws.api.WSBinding; -import com.sun.xml.internal.ws.api.addressing.AddressingVersion; import com.sun.xml.internal.ws.api.message.Header; -import com.sun.xml.internal.ws.api.message.HeaderList; import com.sun.xml.internal.ws.api.message.Message; +import com.sun.xml.internal.ws.api.message.MessageHeaders; import com.sun.xml.internal.ws.api.pipe.Tube; import com.sun.xml.internal.ws.api.pipe.TubeCloner; import com.sun.xml.internal.ws.api.pipe.helper.AbstractFilterTubeImpl; -import com.sun.xml.internal.ws.binding.BindingImpl; import com.sun.xml.internal.ws.binding.SOAPBindingImpl; import com.sun.xml.internal.ws.message.DOMHeader; import com.sun.xml.internal.ws.fault.SOAPFaultBuilder; @@ -49,7 +47,6 @@ import javax.xml.ws.WebServiceException; import javax.xml.ws.soap.SOAPBinding; import javax.xml.ws.soap.SOAPFaultException; -import java.util.HashSet; import java.util.Set; import java.util.logging.Logger; @@ -95,27 +92,10 @@ * @return returns the headers that have mustUnderstand attribute and are not understood * by the binding. */ - public final Set getMisUnderstoodHeaders(HeaderList headers, Set roles, + public final Set getMisUnderstoodHeaders(MessageHeaders headers, Set roles, Set handlerKnownHeaders) { - Set notUnderstoodHeaders = null; - for (int i = 0; i < headers.size(); i++) { - if (!headers.isUnderstood(i)) { - Header header = headers.get(i); - if (!header.isIgnorable(soapVersion, roles)) { - QName qName = new QName(header.getNamespaceURI(), header.getLocalPart()); - // see if the binding can understand it - if (!binding.understandsHeader(qName)) { - if (!handlerKnownHeaders.contains(qName)) { - logger.info("Element not understood=" + qName); - if (notUnderstoodHeaders == null) - notUnderstoodHeaders = new HashSet(); - notUnderstoodHeaders.add(qName); - } - } - } - } - } - return notUnderstoodHeaders; + return headers.getNotUnderstoodHeaders(roles, handlerKnownHeaders, binding); + } /**