Jesper Steen Møller updated XMLBEANS-487:

    Attachment: patch.txt

I found the bug. When resizing the buffer, and the buffer is split (i.e. with 
the hole in the middle), and the 'i' position was in the newest part of the 
buffer (i.e. before the hole), the, i was adjusted incorrectly.

Patch containing a fix and a test case. I added some comments about the 
adjustments which were not immediately obvious (to me, anyway).
> 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: patch.txt, 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