RFR: 8332431: NullPointerException in JTable of SwingSet2 [v2]
Abhishek Kumar
abhiscxk at openjdk.org
Tue May 28 04:58:03 UTC 2024
On Tue, 28 May 2024 02:59:24 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> Issue is observed in JTable demo in SwingSet2 whereby if we set the focus on a table cell (or click on a table cell) and Press Ctrl+F1 (show/hide tooltip) on a cell of JTable then NullpointerException is seen
>>
>>> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "java.awt.event.MouseEvent.getLocationOnScreen()" because "this.mouseEvent" is null
>>
>> This is because ToolTip associated with JTable demo button at top of SwingSet2 has MouseMotion Listener which causes [mouseEvent to be null](https://github.com/openjdk/jdk/blame/da3001daf79bf943d6194d9fd60250d519b9680d/src/java.desktop/share/classes/javax/swing/ToolTipManager.java#L573) when mouse exits the demo button area and enter the table cells area where show/hide tooltip causes showTipWindow to be called trying to access `mouseEvent` which is null.
>> Fix is made to check for null in this kind of cases..No regression test is added as it can be checked easily with SwingSet2..
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>
> Additional null check
src/java.desktop/share/classes/javax/swing/ToolTipManager.java line 271:
> 269: toFind = mouseEvent.getLocationOnScreen();
> 270: } else {
> 271: toFind = screenLocation;
Why `toFind` is set to `screenLocation` ?
src/java.desktop/share/classes/javax/swing/ToolTipManager.java line 310:
> 308: }
> 309: } else {
> 310: if (mouseEvent != null) {
this may not be in the scope of changes but is it worth spending some time for code formatting ? Looks very messy.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19379#discussion_r1616579105
PR Review Comment: https://git.openjdk.org/jdk/pull/19379#discussion_r1616580635
More information about the client-libs-dev
mailing list