On Tue, 22 Apr 2025 16:11:28 GMT, Anass Baya <ab...@openjdk.org> wrote:

>> This test was designed to manually verify that clicking on the JComboBox 
>> when the frame containing it is about to close does not cause an 
>> IllegalStateException.
>> 
>> The test allowed the tester extra time to click on the JComboBox when 
>> closing the frame by adding a Thread.sleep() in the close button handler.
>> 
>> In this test, a JComboBox is displayed with a Close button at the bottom. 
>> The tester should click the Close button, then try to click the JComboBox 
>> arrow button to display the popup.
>> 
>> In the automated test, we save the JComboBox  location size before closing 
>> the frame. We then use this information to click on the JComboBox right 
>> before the frame is closed.
>
> Anass Baya has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Update Copyright

Changes requested by aivanov (Reviewer).

test/jdk/javax/swing/JComboBox/ComboPopupBug.java line 62:

> 60: 
> 61:     private static JFrame createUI() {
> 62:         JFrame frame = new JFrame("ComboPopup");

To reduce the number of changes compared to the previous version, I suggest 
keeping `createUI` method, just change its return type to `void` and pass the 
reference `ComboPopupBug::createUI` to `invokeAndWait`.

This way would be cleaner, I think.

test/jdk/javax/swing/JComboBox/ComboPopupBug.java line 66:

> 64:                         clickComboBox();
> 65:                         frame.setVisible(false);
> 66:                     });

Reduce indentation.
Suggestion:

            closeButton.addActionListener((e) -> {
                clickComboBox();
                frame.setVisible(false);
            });

test/jdk/javax/swing/JComboBox/ComboPopupBug.java line 80:

> 78:             SwingUtilities.invokeAndWait(() -> closeButton.doClick());
> 79:         }
> 80:         finally {

Use Java code style.
Suggestion:

        } finally {

test/jdk/javax/swing/JComboBox/ComboPopupBug.java line 85:

> 83:     }
> 84: 
> 85:     public static void clickComboBox() {

Suggestion:

    private static void clickComboBox() {

Not that important, yet I prefer having all the methods `private`.

test/jdk/javax/swing/JComboBox/ComboPopupBug.java line 87:

> 85:     public static void clickComboBox() {
> 86:         comboBoxLocation = comboBox.getLocationOnScreen();
> 87:         comboBoxSize = comboBox.getSize();

Both `comboBoxLocation` and `comboBoxSize` should be local variables declared 
here, in the `clickComboBox` method.

test/jdk/javax/swing/JComboBox/ComboPopupBug.java line 92:

> 90:                 comboBoxLocation.y + comboBoxSize.height / 2);
> 91:         robot.mousePress(InputEvent.BUTTON1_MASK);
> 92:         robot.mouseRelease(InputEvent.BUTTON1_MASK);

Use the recommended constants instead of deprecated ones.
Suggestion:

        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);

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

PR Review: https://git.openjdk.org/jdk/pull/24624#pullrequestreview-2786723132
PR Review Comment: https://git.openjdk.org/jdk/pull/24624#discussion_r2055717632
PR Review Comment: https://git.openjdk.org/jdk/pull/24624#discussion_r2055699136
PR Review Comment: https://git.openjdk.org/jdk/pull/24624#discussion_r2055702144
PR Review Comment: https://git.openjdk.org/jdk/pull/24624#discussion_r2055707240
PR Review Comment: https://git.openjdk.org/jdk/pull/24624#discussion_r2055705815
PR Review Comment: https://git.openjdk.org/jdk/pull/24624#discussion_r2055721502

Reply via email to