On Tue, 6 Jul 2021 23:54:12 GMT, Kevin Rushforth <k...@openjdk.org> wrote:
> This PR implements a version check in the JavaFX runtime initialization code > on macOS to ensure that the platform is running a version of macOS that is at > or above the minimum version. If the platform is below the specified minimum, > the JavaFX initialization code throws an exception. > > The minimum version is passed from the `mac.gradle` file to the Mac glass > code as a pair of build time constants, which are compared at runtime to the > platform version. > > Notes to reviewers: > > * In case anyone is interested, the first commit has some debug logging which > will print the minimum version and the detected platform version. I removed > them with the second commit. Marked as reviewed by jvos (Reviewer). > Thanks for the suggestion. I tried it and found that it leads to a less clear > exception message. `JNI_OnLoad` is called from `System.loadLibrary`, which > turns any exception into an `UnsatisfiedLinkError` without using the message > of the caught exception. So instead of a runtime exception with the message > `Unsupported macOS version`, we would get something like this: > > ``` > Caused by: java.lang.UnsatisfiedLinkError: no glass in java.library.path: > > /Users/kcr/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions: > /System/Library/Java/Extensions:/usr/lib/java:. > ``` > > So I'd prefer to leave it in `initIDs` (although it seems best to move the > check up so it's the first thing done in that method). You are right, the UnsatisfiedLinkError is a bit misleading in this case. ------------- PR: https://git.openjdk.java.net/jfx/pull/567