jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/StreamSOAPCodec.java
changeset 19645 36f707905f2b
parent 16791 fe5141eabb0e
--- a/jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/StreamSOAPCodec.java	Wed Jul 05 19:07:31 2017 +0200
+++ b/jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/StreamSOAPCodec.java	Fri Aug 23 09:57:21 2013 +0100
@@ -194,9 +194,7 @@
         return decode(soapVersion, reader, attachmentSet);
     }
 
-    public static final Message decode(SOAPVersion soapVersion, XMLStreamReader reader,
-            @NotNull AttachmentSet attachmentSet) {
-
+    public static final Message decode(SOAPVersion soapVersion, XMLStreamReader reader, @NotNull AttachmentSet attachmentSet) {
         // Move to soap:Envelope and verify
         if(reader.getEventType()!=XMLStreamConstants.START_ELEMENT)
             XMLStreamReaderUtil.nextElementContent(reader);
@@ -205,61 +203,7 @@
             throw new VersionMismatchException(soapVersion, soapVersion.nsUri, reader.getNamespaceURI());
         }
         XMLStreamReaderUtil.verifyTag(reader, soapVersion.nsUri, SOAP_ENVELOPE);
-
-        TagInfoset envelopeTag = new TagInfoset(reader);
-
-        // Collect namespaces on soap:Envelope
-        Map<String,String> namespaces = new HashMap<String,String>();
-        for(int i=0; i< reader.getNamespaceCount();i++){
-                namespaces.put(reader.getNamespacePrefix(i), reader.getNamespaceURI(i));
-        }
-
-        // Move to next element
-        XMLStreamReaderUtil.nextElementContent(reader);
-        XMLStreamReaderUtil.verifyReaderState(reader,
-                javax.xml.stream.XMLStreamConstants.START_ELEMENT);
-
-        HeaderList headers = null;
-        TagInfoset headerTag = null;
-
-        if (reader.getLocalName().equals(SOAP_HEADER)
-                && reader.getNamespaceURI().equals(soapVersion.nsUri)) {
-            headerTag = new TagInfoset(reader);
-
-            // Collect namespaces on soap:Header
-            for(int i=0; i< reader.getNamespaceCount();i++){
-                namespaces.put(reader.getNamespacePrefix(i), reader.getNamespaceURI(i));
-            }
-            // skip <soap:Header>
-            XMLStreamReaderUtil.nextElementContent(reader);
-
-            // If SOAP header blocks are present (i.e. not <soap:Header/>)
-            if (reader.getEventType() == XMLStreamConstants.START_ELEMENT) {
-                headers = new HeaderList(soapVersion);
-
-                try {
-                    // Cache SOAP header blocks
-                    StreamHeaderDecoder headerDecoder = SOAPVersion.SOAP_11.equals(soapVersion) ? StreamSOAP11Codec.SOAP11StreamHeaderDecoder : StreamSOAP12Codec.SOAP12StreamHeaderDecoder;
-                    cacheHeaders(reader, namespaces, headers, headerDecoder);
-                } catch (XMLStreamException e) {
-                    // TODO need to throw more meaningful exception
-                    throw new WebServiceException(e);
-                }
-            }
-
-            // Move to soap:Body
-            XMLStreamReaderUtil.nextElementContent(reader);
-        }
-
-        // Verify that <soap:Body> is present
-        XMLStreamReaderUtil.verifyTag(reader, soapVersion.nsUri, SOAP_BODY);
-        TagInfoset bodyTag = new TagInfoset(reader);
-
-        String bodyPrologue = XMLStreamReaderUtil.nextWhiteSpaceContent(reader);
-        return new StreamMessage(envelopeTag,headerTag,attachmentSet,headers,bodyPrologue,bodyTag,null,reader,soapVersion);
-        // when there's no payload,
-        // it's tempting to use EmptyMessageImpl, but it doesn't preserve the infoset
-        // of <envelope>,<header>, and <body>, so we need to stick to StreamMessage.
+        return new StreamMessage(soapVersion, reader, attachmentSet);
     }
 
     public void decode(ReadableByteChannel in, String contentType, Packet packet ) {
@@ -270,56 +214,6 @@
         return this;
     }
 
-    private static XMLStreamBuffer cacheHeaders(XMLStreamReader reader,
-            Map<String, String> namespaces, HeaderList headers,
-            StreamHeaderDecoder headerDecoder) throws XMLStreamException {
-        MutableXMLStreamBuffer buffer = createXMLStreamBuffer();
-        StreamReaderBufferCreator creator = new StreamReaderBufferCreator();
-        creator.setXMLStreamBuffer(buffer);
-
-        // Reader is positioned at the first header block
-        while(reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT) {
-            Map<String,String> headerBlockNamespaces = namespaces;
-
-            // Collect namespaces on SOAP header block
-            if (reader.getNamespaceCount() > 0) {
-                headerBlockNamespaces = new HashMap<String,String>(namespaces);
-                for (int i = 0; i < reader.getNamespaceCount(); i++) {
-                    headerBlockNamespaces.put(reader.getNamespacePrefix(i), reader.getNamespaceURI(i));
-                }
-            }
-
-            // Mark
-            XMLStreamBuffer mark = new XMLStreamBufferMark(headerBlockNamespaces, creator);
-            // Create Header
-            headers.add(headerDecoder.decodeHeader(reader, mark));
-
-
-            // Cache the header block
-            // After caching Reader will be positioned at next header block or
-            // the end of the </soap:header>
-            creator.createElementFragment(reader, false);
-            if (reader.getEventType() != XMLStreamConstants.START_ELEMENT &&
-                    reader.getEventType() != XMLStreamConstants.END_ELEMENT) {
-                XMLStreamReaderUtil.nextElementContent(reader);
-            }
-        }
-
-        return buffer;
-    }
-
-    protected interface StreamHeaderDecoder {
-        public Header decodeHeader(XMLStreamReader reader, XMLStreamBuffer mark);
-    }
-
-    private static MutableXMLStreamBuffer createXMLStreamBuffer() {
-        // TODO: Decode should own one MutableXMLStreamBuffer for reuse
-        // since it is more efficient. ISSUE: possible issue with
-        // lifetime of information in the buffer if accessed beyond
-        // the pipe line.
-        return new MutableXMLStreamBuffer();
-    }
-
     public void decode(InputStream in, String contentType, Packet packet, AttachmentSet att ) throws IOException {
         List<String> expectedContentTypes = getExpectedContentTypes();
         if (contentType != null && !isContentTypeSupported(contentType,expectedContentTypes)) {