[ 
https://issues.apache.org/jira/browse/XALANJ-2725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17810492#comment-17810492
 ] 

Max edited comment on XALANJ-2725 at 1/24/24 5:14 PM:
------------------------------------------------------

Thank you for you wonderful instructions. Setting up and running tests was 
effortless. For what it's worth, I printed out the test's input and output, and 
in reality it is equivalent, but not equal.

Input: 𐀰¤𐀲 
output: 𐀰¤𐀲

The output is actually escaped correctly, but it is not mapped back to the 
utf16 characters. This may be because we fixed only a part of the 
serialization. Someplace else in the code numeric entities must be deserialized 
back to the actual utf16 encoding.


was (Author: maxfortun):
Thank you for you wonderful instructions. Setting up and running tests was 
effortless. For what it's worth, I printed out the test's input and output, and 
in reality it is equivalent, but not equal.

Input: 𐀰¤𐀲 
output: 𐀰¤𐀲

The output is actually escaped correctly, but it is not mapped back to the 
utf16 characters. This may be because we fixed only a part of the 
serialization. Someplace else in the code numeric entities must be serialized 
back to the actual utf16 encoding.

> Possible buffer-boundry issue when serializing surrogate pairs
> --------------------------------------------------------------
>
>                 Key: XALANJ-2725
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2725
>             Project: XalanJ2
>          Issue Type: Improvement
>      Security Level: No security risk; visible to anyone(Ordinary problems in 
> Xalan projects.  Anybody can view the issue.) 
>          Components: Serialization
>            Reporter: Joe Kesselman
>            Assignee: Joe Kesselman
>            Priority: Major
>              Labels: Surrogates, escaping, unicode, utf
>         Attachments: astral-chars-split-buffer.patch
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> XALANJ-2419 addressed a case where "astral" Unicode characters, requiring a 
> surrogate pair (two UTF-16 units), were not being serialized correctly. We 
> have a proposed fix for that.
> There is reported to still be an edge case when a surrogate pair which 
> crosses buffer boundaries might not be handled correctly. [~maxfortun] 
> offered what looks like a reasonable proposed fix 
> (https://github.com/maxfortun/xalan-j/blob/a9bd5591d9f8a523548aeec091e886b64c691628/src/org/apache/xml/serializer/ToStream.java#L1607),
>  but in my testing this was not serializing the surrogate pairs correctly, 
> causing regression on the tests XALANJ-2419 introduced. I don't know whether 
> that's because we're taking multiple paths through
> But the edge case does appear to be real, and if so we will need some such 
> solution.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to