Performance Improvement: Change SOAPBuilder to use InputStream instead of Reader
--------------------------------------------------------------------------------
Key: AXIS2-2508
URL: https://issues.apache.org/jira/browse/AXIS2-2508
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: kernel
Reporter: Rich Scheuerle
During some performance testing, we discovered that the SOAPBuilder code
converts an InputStream into a Reader.
streamReader =
StAXUtils.createXMLStreamReader(BuilderUtil.getReader(inputStream,
charSetEncoding));
I wholeheartedly agree with the new code structure to use the BOM information
that is embedded in the InputStream.
But we probably shouldn't convert the entire InputStream into a Reader.
So I have created an improvement on the current solution.
Here is the same snippet of code in the new solution:
// Get the actual encoding by looking at the BOM of the InputStream
PushbackInputStream pis =
BuilderUtil.getPushbackInputStream(inputStream);
String actualCharSetEncoding = BuilderUtil.getCharSetEncoding(pis,
charSetEncoding);
// Get the XMLStreamReader for this input stream
streamReader = StAXUtils.createXMLStreamReader(pis,
actualCharSetEncoding);
This new solution still uses BOM detection, but it also does not require a full
translation into a Reader.
I have completed the testing for this change, and will be committing it shortly.
I don't believe that this is a controversal change, but if anyone disagrees
please contact me.
--
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]