-
Bug
-
Resolution: Fixed
-
P3
-
jfx17
-
os_x
This is a follow-on fix to JDK-8266743.
The JavaFX build specifies the minimum version of macOS on which it will run. This allows using APIs from that minimum version without checking for their availability at runtime.
If there are any `@available` checks in the code less than or equal to that minimum, the clang compiler will elide these checks so that no checking is done at runtime. This would be fine if macOS failed to load a binary that targets a newer library, but in the case of dylibs, it loads it, which then leads to a runtime crash. This sort of accidental, deferred failure leads to a bad experience, and was the cause ofJDK-8266743. Given where we were in the JavaFX release, we decided to revert the change to the minimum version back to 10.10.
Regardless of what the minimum version is, we should add a check to the platform initialization code to verify that version and "fail fast" on an attempt to run on any older version. Otherwise, we will continue to have the possibility of a similar crash on an older version of macOS.
Separately, we plan to bump the minimum version to 10.12 again for JavaFX 18 -- seeJDK-8269968.
The JavaFX build specifies the minimum version of macOS on which it will run. This allows using APIs from that minimum version without checking for their availability at runtime.
If there are any `@available` checks in the code less than or equal to that minimum, the clang compiler will elide these checks so that no checking is done at runtime. This would be fine if macOS failed to load a binary that targets a newer library, but in the case of dylibs, it loads it, which then leads to a runtime crash. This sort of accidental, deferred failure leads to a bad experience, and was the cause of
Regardless of what the minimum version is, we should add a check to the platform initialization code to verify that version and "fail fast" on an attempt to run on any older version. Otherwise, we will continue to have the possibility of a similar crash on an older version of macOS.
Separately, we plan to bump the minimum version to 10.12 again for JavaFX 18 -- see
- blocks
-
JDK-8269968 [REDO] Bump minimum version of macOS for x64 to 10.12
- Resolved
- relates to
-
JDK-8265031 Change default macOS min version for x86_64 to 10.12 and aarch64 to 11.0
- Resolved
-
JDK-8266743 Crash on macOS 10.11 due to ignored @available 10.12 check
- Resolved