Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8341978: Improve JButton/bug4490179.java #21474

Conversation

aivanov-jdk
Copy link
Member

@aivanov-jdk aivanov-jdk commented Oct 11, 2024

At first, I noticed bug4490179.java didn't release mouse button 1, which could affect the following tests.

I started looking at the test and updated it to use CountDownLatch instead of delays.

@azvegint handled releasing mouse button 1 in #19339 (comment).

The updated version first verifies mouseButton3Released event is received and ensures actionPerformed is not received at this time.

Then mouse button is released; this should trigger two events: mouseButton1Released and actionPerformed. It is verified that these events are received.

I kept debugging prints, they help understanding which actions lead to which events.

The updated test reproduces the original, it is easily verified using Java 8; the updated test is stable in CI.

The javax/swing/JButton/bug4490179.java test is also modified in #20861, @mrserb, could you take a look? I was going to suggested factoring out the changes to this test from #20861, yet I modified it myself. I realised it when I started creating the PR.


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8341978: Improve JButton/bug4490179.java (Bug - P4)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/21474/head:pull/21474
$ git checkout pull/21474

Update a local copy of the PR:
$ git checkout pull/21474
$ git pull https://git.openjdk.org/jdk.git pull/21474/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 21474

View PR using the GUI difftool:
$ git pr show -t 21474

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/21474.diff

Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Oct 11, 2024

👋 Welcome back aivanov! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Oct 11, 2024

@aivanov-jdk This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8341978: Improve JButton/bug4490179.java

Use latch to synchronize actions in the test.
Verify mouseButton3Released does not trigger actionPerformed
while mouse button 1 is pressed.
Ensure mouse button 1 is released.
Verify releasing mouse button 1 triggers actionPerformed.

Reviewed-by: azvegint, achung, serb

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 65 new commits pushed to the master branch:

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the rfr Pull request is ready for review label Oct 11, 2024
@openjdk
Copy link

openjdk bot commented Oct 11, 2024

@aivanov-jdk The following label will be automatically applied to this pull request:

  • client

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the client client-libs-dev@openjdk.org label Oct 11, 2024
@aivanov-jdk
Copy link
Member Author

/summary
Use latch to synchronize actions in the test.
Verify mouseButton3Released does not trigger actionPerformed
while mouse button 1 is pressed.
Ensure mouse button 1 is released.
Verify releasing mouse button 1 triggers actionPerformed.

@openjdk
Copy link

openjdk bot commented Oct 11, 2024

@aivanov-jdk Setting summary to:

Use latch to synchronize actions in the test.
Verify mouseButton3Released does not trigger actionPerformed
while mouse button 1 is pressed.
Ensure mouse button 1 is released.
Verify releasing mouse button 1 triggers actionPerformed.

@mlbridge
Copy link

mlbridge bot commented Oct 11, 2024

Webrevs

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Oct 11, 2024
Copy link
Contributor

@alisenchung alisenchung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just some formatting comments, test is working fine for me on macos


private static volatile Point buttonCenter;

private static final CountDownLatch windowGainedFocus = new CountDownLatch(1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line here is too long and probably should be put in 2 lines

Copy link
Member Author

@aivanov-jdk aivanov-jdk Oct 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it should, it's 86 column long, it nearly fits the 80-column limit; I don't think wrapping the line improves readability or clarity.

robot.waitForIdle();

if (actionPerformed.await(100, MILLISECONDS)) {
throw new RuntimeException("Action event triggered by releasing button 3");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line here also should be put into 2 lines

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm reluctant about changing it… The PR is approved now. And the line still fits 100-column limit.

Yet here it wrapping the line has its value, the button number is at the end of the line.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I talked to @azvegint and we decided it's good enough. Wrapping the lines would require re-review.

@aivanov-jdk
Copy link
Member Author

/integrate

@openjdk
Copy link

openjdk bot commented Oct 18, 2024

Going to push as commit 8174cbd.
Since your change was applied there have been 100 commits pushed to the master branch:

  • 9201e9f: 8342409: [s390x] C1 unwind_handler fails to unlock synchronized methods with LM_MONITOR
  • 0963b9e: 8341664: ReferenceClassDescImpl cache internalName
  • c51a086: 8339694: ciTypeFlow does not correctly handle unresolved constant dynamic of array type
  • 7f4ed50: 8341020: Error handler crashes when Metaspace is not fully initialized
  • f50bd0d: 8341513: Remove the unused thread_type field from OSThread
  • 7a16906: 8341134: Deprecate for removal the jrunscript tool
  • ffe6091: 8173970: jar tool should have a way to extract to a directory
  • 2b03dbd: 8311530: Deprecate jdk.jsobject module for removal
  • f7e8f50: 8341292: Open some TextArea awt tests 3
  • fe83b7d: 8339341: SurfaceManager cacheMap retains strong references
  • ... and 90 more: https://git.openjdk.org/jdk/compare/7276a1bec0d90f63e9e433fdcdfd6564b70dc9bb...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Oct 18, 2024
@openjdk openjdk bot closed this Oct 18, 2024
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Oct 18, 2024
@openjdk
Copy link

openjdk bot commented Oct 18, 2024

@aivanov-jdk Pushed as commit 8174cbd.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@aivanov-jdk aivanov-jdk deleted the 8341978-JButton/bug4490179.java branch October 18, 2024 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client client-libs-dev@openjdk.org integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

5 participants