On Sun, 28 Feb 2021 07:39:20 GMT, Alexander Zvegintsev <azveg...@openjdk.org> 
wrote:

>> This issue occurs only under `MetalLookAndFeel` on Linux. 
>> 
>> It was introduced by 
>> [JDK-8040630](https://bugs.openjdk.java.net/browse/JDK-8040630) fix.
>> 
>>> component.setBounds(ownerX, ownerY, 1, 1);
>> 
>> This line adds an extra reshape call with `1x1` size right before getting 
>> another one with correct sizes.
>> 
>> If `MetalToolTipUI#paint()` call happens before getting correct sizes,  it 
>> calculates `paintTextR` with negative sizes for component with `1x1` size,  
>> thus IAE is thrown.
>> 
>> The fix is to do not proceed with `paint()` for negative sizes.
>> The provided test fails for me in 0-30s interval(before the fix), other 
>> testing(client-tier1,2,3) looks good.
>
> Alexander Zvegintsev has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   simplified test

src/java.desktop/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java line 
124:

> 122:         if (paintTextR.width <= 0 || paintTextR.height <= 0) {
> 123:             return;
> 124:         }

Any idea why only MetalToolTip is affected only? JDK-8040630 fix was generic so 
shouldn't we apply this fix in BasicToolTipUI#paint instead?

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

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

Reply via email to