[
https://issues.apache.org/jira/browse/WSCOMMONS-231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rich Scheuerle reassigned WSCOMMONS-231:
----------------------------------------
Assignee: Rich Scheuerle
> MTOMXMLStreamWriter flush() can cause attachments to be written at the wrong
> time
> ---------------------------------------------------------------------------------
>
> Key: WSCOMMONS-231
> URL: https://issues.apache.org/jira/browse/WSCOMMONS-231
> Project: WS-Commons
> Issue Type: Bug
> Reporter: Rich Scheuerle
> Assignee: Rich Scheuerle
>
> Upgrades to MTOMXMLStreamWriter
> Summary of Changes:
> 1) Improve quality of the attachment writing code.
> 2) Improve access to the OutputStream.
> 3) JavaDoc improvements.
>
> Problem Scenario 1:
> The MTOMXMLStreamWriter overrides the XMLStreamWriter.flush() method. It
> uses the flush() as
> a trigger to write out the attachments. However, if flush() is invoked
> inside the SOAPPart or
> if it is called multiple times, the output message is corrupted.
> Solution:
> Upgraded the methods to keep track of writer state information. For
> example, the writer
> keeps track of when the endDocument is written. The flush() method is
> changed to write
> attachments after the SOAPPart is complete. I also added code to ensure
> that the attachments
> are written only one time.
> ---------------------------------
> Problem Scenario 2:
> The MTOMXMLStreamWriter exposes a getOutputStream() method. This method
> provides access
> to the OutputStream (if available) so that an underlying data source can
> write directly to
> the stream. In many cases it is more performant to write to the
> OutputStream instead of writing
> through the XMLStreamReader interface. In the current implementation,
> the OutputStream is not
> available if the SOAPPart xml is being buffered.
> Solution:
> Changed the code to buffer the SOAPPart xml in a ByteArrayOutputStream.
> The getOutputStream() method
> provides access to this buffered stream. Minor additions were made to
> the MIMEOutputUtils
> Possible Future Follow-Up Work:
> Buffering the SOAPPart XML is expensive if the xml document is large. We
> should consider
> a streaming solution that avoids buffering. This will require additional
> changes to MIMEOutputUtils.
> I have a code change, which I will commit in a few minutes.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]