<Swing Dev> <Swind Dev> [7u6] Review request for 6836089: Swing HTML parser can't properly decode codepoints outside the Unicode Plane 0 into a surrogate pair
Phil Race
philip.race at oracle.com
Tue Jun 26 17:49:55 UTC 2012
I don't understand why you call Character.toChars() if you've just
determined
you don't need to ?
ie what was wrong with
data = ( n >>> 16 == 0) ? {mapNumericReference((char) n)} :
Character.toChars(n);
?
In the case of an invalid supplementary pair, maybe it would be safer
to return { ' ' } ?
One thing I see in the parsing code that is not new or changed here, that
may bear examination, is that there's a loop that keeps on reading so long
so long there are new digits. I am not sure its wise to keep going once
you overflow.
-phil.
On 6/26/2012 12:37 AM, Vladislav Karnaukhov wrote:
> Hello Pavel,
>
> I can provide you with the link to 6u19, but this is direct
> forward-port and no code changes were made.
>
> I'll make changes as you've pointed out in 1) and 2)
>
> About 3) - is it a requirement to use "? :" operator? I personally
> prefer single-line if-else, but I don't want to argue over code style,
> and surely I'll follow code design practices.
>
> Regards,
> - Vlad
>
> On 6/25/2012 6:43 PM, Pavel Porvatov wrote:
>> Hi Vladislav,
>>
>> Do you have a link to the fix for 6u19?
>>
>> I didn't investigate the fix deeply, but
>>
>> 1.
>> private final int MAX_BMP_BOUND = 65535;
>> should be static (otherwise variable name should be in lower case)
>>
>> 2. Add a space in single line comments
>>
>> 3.
>> + char data[];
>> + if (n <= MAX_BMP_BOUND) {
>> + data =
>> Character.toChars(mapNumericReference((char) n));
>> + } else {
>> + data = Character.toChars(n);
>> + }
>> +
>> return data;
>>
>> can be written in one line via "? :" operator and looks more readable
>> for me
>>
>> Thanks, Pavel
>>> Hello,
>>>
>>> please review the fix for 6836089: Swing HTML parser can't properly
>>> decode codepoints outside the Unicode Plane 0 into a surrogate pair.
>>> This is a forward port from JDK6 (fixed escalated issue, fix
>>> integrated) to JDK7.
>>>
>>> The issue is a defect in Swing HTML Parser: if the codepoint is
>>> outside BMP (Unicode Plain 0), Parser incorrectly decodes codepoint
>>> into surrogate pair. The fix is to use Character.toChars() method if
>>> codepoint value is greater than upper bound of BMP.
>>>
>>> Webrev: http://cr.openjdk.java.net/~vkarnauk/6836089/webrev.00/
>>> Bug description:
>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6836089
>>>
>>> Regards,
>>> - Vlad
>>
>
>
More information about the swing-dev
mailing list