On Wed, 2 Aug 2023 08:55:19 GMT, Tejesh R <[email protected]> wrote:

>> The header border uses `g.drawLine` whereas the JTable data grid lines uses 
>> `SwingUtilities2.drawVLine` and `SwingUtilities2.drawHLine` to draw 
>> horizontal and vertical lines. The SwingUtilities2 uses `Graphics.fillRect` 
>> which contributes to the difference between the position of these two lines 
>> which happens/visible at higher ui scaling (difference in alignment between 
>> vertical lines of these two). The fix propose to use the same methods for 
>> metal L&F of JTable header border paint. 
>> CI testing shows green.
>> 
>> ![image](https://github.com/openjdk/jdk/assets/94159358/f6d1d822-55ba-4ad3-9914-d3f68b67a6c5)
>
> Tejesh R has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Review fix

test/jdk/javax/swing/JTableHeader/TableHeaderBorderPositionTest.java line 54:

> 52:         if (!testStatus) {
> 53:             throw new RuntimeException(failureMsg);
> 54:         }

Suggestion:

        if (failureMsg != null) {
            throw new RuntimeException(failureMsg);
        }


`testStatus` is redudant.
`failureMsg` is to be declared `volatile` because it's used on different 
threads; however, `invokeAndWait` internally synchronises, so I think it's fine 
but I'm still unsure about it and I couldn't find any confirmation or disproof 
thereof.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14766#discussion_r1281794795

Reply via email to