Jesper Steen Møller updated XMLBEANS-487:

    Attachment: TestEntityNearBufferGrowth.java

This is a test case which triggers the error. The error is quite rare and 
depends on both the XML and the sequence of the reads.
The newReader() is read in two parts, first 28 characters (INITIAL_READ), then 
the rest. If the value of INITIAL_READ is changed to e.g. 2, or if the second 
read is smaller that apprx 4 k, then the error doesn't occur.

The bad substituition appears to happen when a call to replace (to deal with & 
-> &) has triggered allocation of a larger buffer.
> Entity replacement in wrong place when expansion coincides with buffer growth
> -----------------------------------------------------------------------------
>                 Key: XMLBEANS-487
>                 URL: https://issues.apache.org/jira/browse/XMLBEANS-487
>             Project: XMLBeans
>          Issue Type: Bug
>          Components: XmlObject
>    Affects Versions: Version 2.6
>            Reporter: Jesper Steen Møller
>         Attachments: TestEntityNearBufferGrowth.java
> When serializing an object to XML using newReader(), some of the entity 
> replacements for '&' appear in the wrong places, giving invalid XML.
> Example:
> <a q='aaaaaaaaaaaaaaaaa'><t>Hall &amp; Oates</t></a>
> could be serialized as:
> <a q='aaaaaaaa&amp;aaaaaaaa'><t>Hall & Oates</t></a>
> The bug depends on the sequence of the read()-calls, the size of the 
> requested buffer, and the content. We're using the newReader to feed a Xalan 
> transformation, and in some tens of millions different transformations, this 
> has happened just a few times -- but this time, we've isolated the problem, 
> which is attached as a stand-alone test case.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

To unsubscribe, e-mail: dev-unsubscr...@xmlbeans.apache.org
For additional commands, e-mail: dev-h...@xmlbeans.apache.org

Reply via email to