src/share/jaxws_classes/com/sun/xml/internal/ws/api/message/saaj/SaajStaxWriter.java
Print this page
*** 53,64 ****
static final protected String Envelope = "Envelope";
static final protected String Header = "Header";
static final protected String Body = "Body";
static final protected String xmlns = "xmlns";
- private boolean isHeaderSeen = false;
-
public SaajStaxWriter(final SOAPMessage msg, String uri) throws SOAPException {
soap = msg;
this.envURI = uri;
}
--- 53,62 ----
*** 91,101 ****
if (Envelope.equals(ln)) {
currentElement = getEnvelope();
fixPrefix(prefix);
return;
} else if (Header.equals(ln)) {
- isHeaderSeen = true;
currentElement = soap.getSOAPHeader();
fixPrefix(prefix);
return;
} else if (Body.equals(ln)) {
currentElement = soap.getSOAPBody();
--- 89,98 ----
*** 142,166 ****
if (currentElement != null) currentElement = currentElement.getParentElement();
}
@Override
public void writeEndDocument() throws XMLStreamException {
- try {
- if (!isHeaderSeen) {
- SOAPElement header = soap.getSOAPHeader();
- if (header != null) {
- String prefixAtHeader = header.getPrefix();
- SOAPElement env = getEnvelope();
- header.detachNode();
- if (prefixAtHeader != null && !prefixAtHeader.equals(env.getPrefix())) {
- env.removeNamespaceDeclaration(prefixAtHeader);
- }
- }
- }
- } catch (SOAPException e) {
- throw new XMLStreamException(e);
- }
}
@Override
public void close() throws XMLStreamException {
}
--- 139,148 ----