src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/MtomCodec.java
Print this page
*** 39,48 ****
--- 39,49 ----
import com.sun.xml.internal.ws.developer.SerializationFeature;
import com.sun.xml.internal.ws.developer.StreamingDataHandler;
import com.sun.xml.internal.ws.message.MimeAttachmentSet;
import com.sun.xml.internal.ws.streaming.XMLStreamWriterUtil;
import com.sun.xml.internal.ws.util.ByteArrayDataSource;
+ import com.sun.xml.internal.ws.util.xml.NamespaceContextExAdaper;
import com.sun.xml.internal.ws.util.xml.XMLStreamReaderFilter;
import com.sun.xml.internal.ws.util.xml.XMLStreamWriterFilter;
import com.sun.xml.internal.ws.streaming.MtomStreamWriter;
import com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil;
import com.sun.xml.internal.ws.server.UnsupportedMediaException;
*** 372,383 ****
--- 373,387 ----
}
private void writeBinary(ByteArrayBuffer bab) {
try {
mtomAttachments.add(bab);
+ String prefix = writer.getPrefix(XOP_NAMESPACEURI);
+ if (prefix == null || !prefix.equals("xop")) {
writer.setPrefix("xop", XOP_NAMESPACEURI);
writer.writeNamespace("xop", XOP_NAMESPACEURI);
+ }
writer.writeStartElement(XOP_NAMESPACEURI, XOP_LOCALNAME);
writer.writeAttribute("href", "cid:"+bab.contentId);
writer.writeEndElement();
writer.flush();
} catch (XMLStreamException e) {
*** 511,558 ****
return reader.getText();
}
@Override
public NamespaceContextEx getNamespaceContext() {
! NamespaceContext nsContext = reader.getNamespaceContext();
! return new MtomNamespaceContextEx(nsContext);
}
@Override
public String getElementTextTrim() throws XMLStreamException {
throw new UnsupportedOperationException();
}
- private static class MtomNamespaceContextEx implements NamespaceContextEx {
- private final NamespaceContext nsContext;
-
- public MtomNamespaceContextEx(NamespaceContext nsContext) {
- this.nsContext = nsContext;
- }
-
- @Override
- public Iterator<Binding> iterator() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getNamespaceURI(String prefix) {
- return nsContext.getNamespaceURI(prefix);
- }
-
- @Override
- public String getPrefix(String namespaceURI) {
- return nsContext.getPrefix(namespaceURI);
- }
-
- @Override
- public Iterator getPrefixes(String namespaceURI) {
- return nsContext.getPrefixes(namespaceURI);
- }
-
- }
-
@Override
public int getTextLength() {
if (xopReferencePresent) {
return base64AttData.length();
}
--- 515,532 ----
return reader.getText();
}
@Override
public NamespaceContextEx getNamespaceContext() {
! return new NamespaceContextExAdaper(reader.getNamespaceContext());
}
@Override
public String getElementTextTrim() throws XMLStreamException {
throw new UnsupportedOperationException();
}
@Override
public int getTextLength() {
if (xopReferencePresent) {
return base64AttData.length();
}