[OpenJDK 2D-Dev] RFR: JDK-8263362: Avoid division by 0 in java/awt/font/TextJustifier.java justify

Phil Race prr at openjdk.java.net
Wed Mar 10 18:52:07 UTC 2021


On Wed, 10 Mar 2021 12:55:34 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

>> src/java.desktop/share/classes/java/awt/font/TextJustifier.java line 159:
>> 
>>> 157:             // predivide delta by weight
>>> 158:             float weightedDelta = 0;
>>> 159:             if (weight != 0) { // not used if weight == 0
>> 
>> Can it ever be -ve? Maybe we can do weight > 0 check just as we do for absorbweight?
>
> Hi, I am not sure about the  weight > 0  check ; weight is initialized with 0:   weight = 0;   and later some values are potentially added up to weight:   weight += gi.weight;
> I am not sure about those gi.weight values, maybe they can be negative too ?

Nothing throws an exception or otherwise prevent this being negative but that would be a weird usage. Typically the weight is either zero or based on the font size .. which ought not to be negative but I don't think anything prevents it and I think we would treat it essentially as a transform. So If you really want to be careful here, then yes assume weight could be negative.

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

PR: https://git.openjdk.java.net/jdk/pull/2912


More information about the 2d-dev mailing list