Skip to content

8353002: Remove unnecessary Windows version check in WTaskbarPeer#24287

Closed
gredler wants to merge 1 commit intoopenjdk:masterfrom
gredler:JDK-8353002
Closed

8353002: Remove unnecessary Windows version check in WTaskbarPeer#24287
gredler wants to merge 1 commit intoopenjdk:masterfrom
gredler:JDK-8353002

Conversation

@gredler
Copy link
Contributor

@gredler gredler commented Mar 28, 2025

WTaskbarPeer contains a check as to whether the current Windows version is Windows 7 or later. The current minimum supported version is Windows 10, so this is no longer needed.

There didn't seem to be a public test exercising this code, so I also added a basic Taskbar sanity test.


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-8353002: Remove unnecessary Windows version check in WTaskbarPeer (Bug - P5)

Reviewers

Reviewing

Using git

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

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

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 24287

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

Using diff file

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

Using Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Mar 28, 2025

👋 Welcome back dgredler! 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 Mar 28, 2025

@gredler 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:

8353002: Remove unnecessary Windows version check in WTaskbarPeer

Reviewed-by: prr, serb, aivanov

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 694 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.

As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@prrace, @mrserb, @aivanov-jdk) but any other Committer may sponsor as well.

➡️ To flag this PR as ready for integration with the above commit message, type /integrate in a new comment. (Afterwards, your sponsor types /sponsor in a new comment to perform the integration).

@openjdk openjdk bot added the rfr Pull request is ready for review label Mar 28, 2025
@openjdk
Copy link

openjdk bot commented Mar 28, 2025

@gredler 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 Mar 28, 2025
@mlbridge
Copy link

mlbridge bot commented Mar 28, 2025

Webrevs

Comment on lines -47 to +46
supported = OSInfo.getWindowsVersion()
.compareTo(OSInfo.WINDOWS_7) >= 0
&& ShellFolder.invoke(() -> nativeInit());
supported = ShellFolder.invoke(() -> nativeInit());
Copy link
Member

Choose a reason for hiding this comment

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

I wonder what will happen if I start java.exe on a system with Windows Vista which doesn't support these features.

If the native code returns an error, then it's fine.

I ask this question not only out of curiosity but also because it looks like people run Java apps on Windows versions before Windows 10. We had to implement fallback for older versions of Windows in JDK-8321151.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Interesting, thanks for the link!

One issue I see with JDK-8294427 is that it didn't work all the way back to the original Windows 10 release, which conflicts with the Oracle compatibility matrix.

But besides that, I'm surprised that a fix was implemented and tested targeting Windows 7 compatibility. Is there a different OpenJDK compatibility matrix that I should be aware of? If not, what were the criteria dictating that Windows 7 compatibility be maintained (at least in 2023)?

Copy link
Member

Choose a reason for hiding this comment

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

The biggest issue with JDK-8294427 is that it was backported to older updates, including JDK 11, which is still in use on legacy systems. I think it's reasonable to assume that JDK 25 is supported on Windows 7 and later. However, it would be good to add a notice in JBS stating that it should not be backported.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah, that makes sense -- so the gray area here are releases which technically do not currently support these older Windows versions, but did originally when they were first released, and we don't want to break that compatibility.

I've added a backporting note in JBS, as suggested. Is there a label I should add in JBS as well?

@aivanov-jdk Does that make sense / work for you as well?

@mrserb I'm assuming you meant "I think it's reasonable to assume that JDK 25 is supported on Windows 7 10 and later", is that right?

Copy link
Contributor

Choose a reason for hiding this comment

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

FYI Microsoft still support some updates of Windows 7 .. if you pay them enough, but they do NOT support
the earliest updates of Windows 10.
So Windows 7 is more relevant today than early Windows 10 versions.
Looking at adoption numbers might tell you a similar story.
JDK 25 will ship before Windows 10 leaves mainline support - and it'll also have a long tail on the latest versions.
But Windows Vista isn't something I care about for JDK 25, although "not crashing" would be nice :-)

And yes, the backporting was the big issue with that other fix. Plus that the impact was huge.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@aivanov-jdk Are there any additional concerns from your side after the clarifications from Sergey and Phil?

Copy link
Member

Choose a reason for hiding this comment

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

Interesting, thanks for the link!

One issue I see with JDK-8294427 is that it didn't work all the way back to the original Windows 10 release, which conflicts with the Oracle compatibility matrix.

The original release of Windows 10 isn't supported by Microsoft, therefore it's not supported by Oracle.

But besides that, I'm surprised that a fix was implemented and tested targeting Windows 7 compatibility. Is there a different OpenJDK compatibility matrix that I should be aware of? If not, what were the criteria dictating that Windows 7 compatibility be maintained (at least in 2023)?

Each JDK vendor could have their own compatibility matrix which are different from Oracle.

But Windows Vista isn't something I care about for JDK 25, although "not crashing" would be nice :-)

Very true, Windows Vista is unlikely to be still in use, its adoption was low even when it was new.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Apr 3, 2025
@gredler
Copy link
Contributor Author

gredler commented Apr 7, 2025

/integrate

@openjdk openjdk bot added the sponsor Pull request is ready to be sponsored label Apr 7, 2025
@openjdk
Copy link

openjdk bot commented Apr 7, 2025

@gredler
Your change (at version ab72f57) is now ready to be sponsored by a Committer.

@aivanov-jdk
Copy link
Member

/sponsor

@openjdk
Copy link

openjdk bot commented Apr 7, 2025

Going to push as commit 3757f66.
Since your change was applied there have been 695 commits pushed to the master branch:

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Apr 7, 2025
@openjdk openjdk bot closed this Apr 7, 2025
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review sponsor Pull request is ready to be sponsored labels Apr 7, 2025
@openjdk
Copy link

openjdk bot commented Apr 7, 2025

@aivanov-jdk @gredler Pushed as commit 3757f66.

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

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.

4 participants