On Thu, 8 Jun 2023 11:26:09 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> src/java.desktop/share/classes/javax/swing/text/html/CSS.java line 2690:
>> 
>>> 2688:             return val instanceof CSS.LengthValue lu
>>> 2689:                    && span == lu.span
>>> 2690:                    && Objects.equals(units, lu.units);
>> 
>> [The `percentage` 
>> field](https://github.com/openjdk/jdk/pull/13405#discussion_r1221932524) 
>> must also be part of `equals`:
>> Suggestion:
>> 
>>             return val instanceof CSS.LengthValue lu
>>                    && percentage == lu.percentage
>>                    && span == lu.span
>>                    && Objects.equals(units, lu.units);
>> 
>> You have included it in `hashCode`.
>
> If `percentage` isn't taken into account, the pair `{"margin-top: 100%", 
> "margin-top: 1"}` is considered equal. (And it essentially is; however, I 
> think we should include the `percentage` field, it is part of the object and 
> the behaviour will be different.)
> 
> By the way, this is another quirk of Swing's CSS implementation: in the CSS 
> spec, values without units are considered an error except for a few cases 
> where such usage is specifically allowed.

Updated..

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/13405#discussion_r1222934068

Reply via email to