RFR: 8068824: Exception thrown in JTableHeader after clicking on popupmenu opened with right-click on header

Abhishek Kumar abhiscxk at openjdk.org
Tue Apr 4 07:48:11 UTC 2023


On Fri, 24 Mar 2023 10:34:54 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

> The issue is observed on mouse right click on the table header to open a pupup menu and then, do a mouse left click on the menu entry in which case we get AIOOBE
> This is because the columnIndex for popup menu is returned by `viewIndexForColumn `as -1 seen here https://github.com/openjdk/jdk/blob/941a7ac7dab243c6033a78880fd31faa803e62ab/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java#L745-L753
> which is then passed to DefaultTableColumnModel.getColumn(columnIndex) causing it to throw AIOOBE as per the [DefaultTableColumnModel.getColumn spec](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/javax/swing/table/DefaultTableColumnModel.java#L293)
> 
> So, inline with check done for `viewIndexForColumn `
> https://github.com/openjdk/jdk/blob/941a7ac7dab243c6033a78880fd31faa803e62ab/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java#L310-L312
> a similar check is added when `viewIndexForColumn `is called

Please split the long line and update the copyright year.

test/jdk/javax/swing/JTableHeader/JTableHeaderExceptionTest.java line 37:

> 35: import java.awt.event.ActionEvent;
> 36: import java.awt.event.InputEvent;
> 37: import javax.swing.*;

Wild import can be removed.

test/jdk/javax/swing/JTableHeader/JTableHeaderExceptionTest.java line 91:

> 89: 
> 90:     Point loc;
> 91:     public DragTestTable(DragTestTableModel model){

Please add a space here `public DragTestTable(DragTestTableModel model) {`

test/jdk/javax/swing/JTableHeader/JTableHeaderExceptionTest.java line 99:

> 97:             @Override
> 98:             public void actionPerformed(ActionEvent e) {
> 99:                 //loc = menu.getLocationOnScreen();

Commented line can be removed.

test/jdk/javax/swing/JTableHeader/JTableHeaderExceptionTest.java line 113:

> 111:         private Object columnNames[];
> 112: 
> 113:         public DragTestTableModel(Object rowData[][], Object columnNames[]){

Please add a space here `public DragTestTableModel(Object rowData[][], Object columnNames[]) {`

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

PR Comment: https://git.openjdk.org/jdk/pull/13172#issuecomment-1495502429
PR Review Comment: https://git.openjdk.org/jdk/pull/13172#discussion_r1156819246
PR Review Comment: https://git.openjdk.org/jdk/pull/13172#discussion_r1156820545
PR Review Comment: https://git.openjdk.org/jdk/pull/13172#discussion_r1156821312
PR Review Comment: https://git.openjdk.org/jdk/pull/13172#discussion_r1156823739



More information about the client-libs-dev mailing list