-
Notifications
You must be signed in to change notification settings - Fork 5.8k
7169951: SwingSet2 throws NullPointerException with Nimbus L&F #11984
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
Conversation
👋 Welcome back psadhukhan! A progress list of the required criteria for merging this PR into |
It is unclear does the "getStyle().getFont()" always returns null for that component but we call it only for "floatable" toolbar. Or "getStyle().getFont()" starts to return null for the "floatable" toolbar. If it starts to return null then why does this happen? Are we sure that the "getStyle().getFont()" and "tabPane.getFont()" always returns the same font? |
getStyle().getFont() returns null as "getFontForState(context)" returns null which is because synth state for floating toolbar is invalid which is 0x201 |
Any more comments on this fix? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verified SwingSet2 floating toolbar with current fix.
I think copyright year can be updated else looks good to me.
@prsadhuk 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:
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 744 new commits pushed to the
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 |
Where do we set this "invalid" state? Probably it is valid but we do not set the font property for it(or something like that)?
I am not sure that people will test this usecase if we do not have an instruction to do that nor the tests. |
@prsadhuk This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration! |
/integrate |
Going to push as commit 0712adc.
Your commit was automatically rebased without conflicts. |
It is observed that if SwingSet2 is run in Nimbus L&F and
we drag the icon tool bar (which is floatable) out of the GUI Window
and Once the tool bar is detached, click on "Look & Feel" menu option to change to any L&F (say Java L&F)
it causes NPE due to font being null when getFontMetrics() is called
In other L&F, it uses the tabPane's font whereas in Nimbus font is obtained from getStyle().getFont() which returns null when toolbar is detached from the main window.
The proposed fix is to get tabPane's font if the font passed is null alike other L&Fs.
No regression test is made as it can be verified with SwingSet2..
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk pull/11984/head:pull/11984
$ git checkout pull/11984
Update a local copy of the PR:
$ git checkout pull/11984
$ git pull https://git.openjdk.org/jdk pull/11984/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 11984
View PR using the GUI difftool:
$ git pr show -t 11984
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/11984.diff