[
https://issues.apache.org/jira/browse/SYNAPSE-218?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12555019
]
Andreas Veithen commented on SYNAPSE-218:
-----------------------------------------
The effect of point 1 (and the fact that VFSTransportSender relies on the
behavior described there) can be seen on the following sequence:
<sequence name="in">
<xslt key="encoding_test.xslt"/>
<log level="full"/>
<send>
<endpoint>
<address
uri="vfs:file:///Users/veithen/workspace/synapse-vfs-test/data/out"/>
</endpoint>
</send>
</sequence>
The log mediator will cause the OMSourcedElementImpl to be expanded. In this
case, OMSourcedElementImpl#serializeAndConsume will no longer delegate to
OMDataSource#serialize but to OMElementImpl#serializeAndConsume, which includes
the wrapper element in its output, leading to an unexpected result.
The effect of point 3 can be seen on the following sequence:
<sequence name="in">
<xslt key="encoding_test.xslt"/>
<send>
<endpoint>
<address
uri="vfs:file:///Users/veithen/workspace/synapse-vfs-test/data/out"/>
</endpoint>
</send>
<send>
<endpoint>
<address
uri="vfs:file:///Users/veithen/workspace/synapse-vfs-test/data/out2"/>
</endpoint>
</send>
</sequence>
Sending to the first endpoint will consume the input stream, causing an empty
file to be sent to the second endpoint.
> TextFileDataSource violates OMDataSource contract
> -------------------------------------------------
>
> Key: SYNAPSE-218
> URL: https://issues.apache.org/jira/browse/SYNAPSE-218
> Project: Synapse
> Issue Type: Bug
> Components: Core
> Affects Versions: NIGHTLY
> Reporter: Andreas Veithen
> Priority: Minor
>
> TextFileDataSource is an implementation of OMDataSource representing text
> wrapped inside a <text> element. However, it doesn't respect the contract of
> OMDataSource:
> 1) serialize(OutputStream, OMOutputFormat) doesn't output the <text> wrapper
> element (actually the code is commented out) and doesn't take into account
> the character encoding specified by the OMOutputFormat.
> 2) serialize(Writer, OMOutputFormat) only outputs an empty <text> element.
> 3) TextFileDataSource will give unexpected results with multiple invocations
> (of the same or different methods) on the same instance, because the
> invocation of any of the methods consumes the InputStream.
> It should be noted that
> * VFSTransportSender relies on the behavior described in point 1;
> * the intention of the behavior described in point 2 is probably to avoid
> dumping the entire text data when the message is logged.
> However, the described behavior might lead to unexpected results in other
> situations.
--
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]