[
https://issues.apache.org/jira/browse/SYNAPSE-211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12581713#action_12581713
]
Andreas Veithen commented on SYNAPSE-211:
-----------------------------------------
@Asankha: Now that temporary files are created transparently, do we still need
to set an ErrorListener on the transformer (cf. SYNAPSE-242)?
> Improve performance in XSLTMediator when temporary files are used
> -----------------------------------------------------------------
>
> Key: SYNAPSE-211
> URL: https://issues.apache.org/jira/browse/SYNAPSE-211
> Project: Synapse
> Issue Type: Improvement
> Components: Core
> Affects Versions: 1.1, NIGHTLY
> Reporter: Andreas Veithen
> Priority: Minor
> Fix For: 1.2
>
>
> The XSLT mediator has a mechanism to stream the result of the transformation
> to a temporary file when its size exceeds some threshold (defined by
> BYTE_ARRAY_SIZE, which has a fixed value of 8192). However, when this
> happens, the transformation is actually triggered twice. During the first
> run, the result is sent to a FixedByteArrayOutputStream which will raise a
> SynapseException after the first 8192 bytes have been written. The
> transformation is then restarted using a FileOutputStream for the result.
> This is very bad for two reasons:
> * It introduced an overhead (the first attempt to execute the transformation)
> for every large XML that is processed.
> * It makes the choice of the threshold BYTE_ARRAY_SIZE difficult: a small
> value is bad for smaller XML documents (because temporary files are used
> where this is not necessary) but good for larger ones (because it reduces the
> overhead caused by the first transformation attempt); a large value is good
> for smaller XML documents (avoids temporary files) but bad for larger ones
> (increased overhead for the first transformation).
> A better approach would be to have an OutputStream implementation that will
> first write to a byte array and once the threshold is exceeded transparently
> switches to a temporary file, so that the transformation is always run only
> once.
--
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]