Liberica JDK 24.0.2+12: Release Notes
Published: July 16, 2025
1. Version information
This document provides information about Liberica JDK 24.0.2 release.
The full version string for this update release is 24.0.2+12. The version number is 24.
Liberica JDK 24 is distributed as .apk
, .rpm
, .zip
, .deb
, and .tar.gz
packages. Please select the most appropriate for your purposes.
2. What’s New
This release contains the following updates and new features.
Notable Changes
This is the list of the notable issues fixed in this release.
Issue ID | |
---|---|
JDK-8303770 | Summary: Removed Baltimore CyberTrust Root Certificate After Expiry Date Description: The following expired root certificate has been removed from the |
JDK-8345185 | Summary: jpackage No Longer Includes Service Bindings by Default for Generated Run-Time Images Description: Starting with JDK 25, |
JDK-8346587 | Summary: Distrust TLS server certificates anchored by Camerfirma Root CAs Description: The JDK will stop trusting TLS server certificates issued after April 15, 2025 and anchored by Camerfirma root certificates, in line with similar plans announced by Google, Mozilla, Apple, and Microsoft. TLS server certificates issued on or before April 15, 2025 will continue to be trusted until they expire. Certificates issued after that date, and anchored by any of the Certificate Authorities in the table below, will be rejected. The restrictions are enforced in the JDK implementation (the |
JDK-8350498 | Summary: Removed Two Camerfirma Root Certificates Description: The following root certificates, which are terminated and no longer in use, have been removed from the |
JDK-8352716 | Summary: Update Timezone Data to 2025b Description: The 2025b release of the tz code and data contains the following changes: New zone for Aysén Region in Chile which moves from -04/-03 to -03. |
JDK-8359170 | Summary: Added 4 New Root Certificates from Sectigo Limited Description: The following Sectigo Limited root certificates have been added to the cacerts truststore: sectigocodesignroote46, DN: CN=Sectigo Public Code Signing Root E46, O=Sectigo Limited, C=GB; sectigocodesignrootr46, DN: CN=Sectigo Public Code Signing Root R46, O=Sectigo Limited, C=GB; sectigotlsroote46, DN: CN=Sectigo Public Server Authentication Root E46, O=Sectigo Limited, C=GB; sectigotlsrootr46, DN: CN=Sectigo Public Server Authentication Root R46, O=Sectigo Limited, C=GB. |
Discontinued OS support
Note that Liberica JDK 24.0.2 is not available for and cannot be run on the following operating systems:
-
Windows x86 (32-bit)
-
macOS 10.x
IANA TZ Data update
This release of Liberica JDK 24.0.2 upgrades the in-tree copy of the IANA timezone database to 2025b. The following are the key changes of this update:
Future Timestamps:
New Time Zone:
A new time zone, America/Coyhaique, is created for Chile’s Aysén Region, which will now observe UTC−03 year-round (no daylight saving time).
-
This diverges from America/Santiago starting March 20, 2025.
-
Aysén will not change clocks on April 5, 2025.
-
This aligns Aysén with Magallanes Region.
Past Timestamps:
Iran Time Change Correction:
Iran changed from UTC+04 to UTC+03:30 on November 10, 1978, not at the end of the year as previously recorded.
Code Fixes:
Improved behavior for the zic tool:
-
It no longer creates invalid symlinks when using -l with multiple arguments.
-
A buffer underflow issue is resolved.
For more information, see JDK-8352716.
3. Known Issues
This release does not contain any known issues.
4. Fixed CVEs
This is the list of the security issues fixed in this release. CVSS scores are provided using the CVSS version 3.1 scoring system.
CVE ID | CVSS score | Component | Module | Attack Vector | Complexity | Privileges | User Interaction | Scope | Confidentiality | Integrity | Availability |
---|---|---|---|---|---|---|---|---|---|---|---|
CVE-2025-24855 | 7.5 | javafx | web | network | high | none | required | unchanged | high | high | high |
CVE-2025-27113 | 7.5 | javafx | web | network | high | none | required | unchanged | high | high | high |
CVE-2025-30749 | 8.1 | client-libs | 2d | network | high | none | none | unchanged | high | high | high |
CVE-2025-30754 | 4.8 | security-libs | javax.net.ssl | network | high | none | none | unchanged | low | low | none |
CVE-2025-50059 | 8.6 | core-libs | java.net | network | low | none | none | changed | high | none | none |
CVE-2025-50106 | 8.1 | client-libs | 2d | network | high | none | none | unchanged | high | high | high |
5. Resolved Issues
JDK issues
This is the list of general JDK issues fixed in this release.
Issue ID | Summary |
---|---|
JDK-8217914 | java/net/httpclient/ConnectTimeoutHandshakeSync.java failed on connection refused while doing POST |
JDK-8276995 | Bug in jdk.jfr.event.gc.collection.TestSystemGC |
JDK-8280991 | [XWayland] No displayChanged event after setDisplayMode call |
JDK-8281511 | java/net/ipv6tests/UdpTest.java fails with checkTime failed |
JDK-8286204 | [Accessibility,macOS,VoiceOver] VoiceOver reads the spinner value 10 as 1 when user iterates to 10 for the first time on macOS |
JDK-8294155 | Exception thrown before awaitAndCheck hangs PassFailJFrame |
JDK-8303770 | Remove Baltimore root certificate expiring in May 2025 |
JDK-8305010 | Test vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java timed out: thread not suspended |
JDK-8314840 | 3 gc/epsilon tests ignore external vm options |
JDK-8322983 | Virtual Threads: exclude 2 tests |
JDK-8330598 | java/net/httpclient/Http1ChunkedTest.java fails with java.util.MissingFormatArgumentException: Format specifier '%s' |
JDK-8330936 | [ubsan] exclude function BilinearInterp and ShapeSINextSpan in libawt java2d from ubsan checks |
JDK-8334644 | Automate javax/print/attribute/PageRangesException.java |
JDK-8336042 | Caller/callee param size mismatch in deoptimization causes crash |
JDK-8338303 | Linux ppc64le with toolchain clang - detection failure in early JVM startup |
JDK-8339889 | Several compiler tests ignore vm flags and not marked as flagless |
JDK-8340784 | Remove PassFailJFrame constructor with screenshots |
JDK-8342524 | Use latch in AbstractButton/bug6298940.java instead of delay |
JDK-8342775 | [Graal] java/util/concurrent/locks/Lock/OOMEInAQS.java fails OOME thrown from the UncaughtExceptionHandler |
JDK-8343191 | Cgroup v1 subsystem fails to set subsystem path |
JDK-8343224 | print/Dialog/PaperSizeError.java fails with MediaSizeName is not A4: A4 |
JDK-8343607 | C2: Shenandoah crashes during barrier expansion in Continuation::enter |
JDK-8343882 | BasicAnnoTests doesn’t handle multiple annotations at the same position |
JDK-8343978 | Update the default value of CodeEntryAlignment for Ampere-1A and 1B |
JDK-8344316 | security/auth/callback/TextCallbackHandler/Password.java make runnable with JTReg and add the UI |
JDK-8344453 | Test jdk/jfr/event/oldobject/TestSanityDefault.java timed out |
JDK-8344581 | [TESTBUG] java/awt/Robot/ScreenCaptureRobotTest.java failing on macOS |
JDK-8344629 | SSLSocketNoServerHelloClientShutdown test timeout |
JDK-8344892 | beans/finder/MethodFinder.findMethod incorrectly returns null |
JDK-8344925 | translet-name ignored when package-name is also set |
JDK-8345133 | Test sun/security/tools/jarsigner/TsacertOptionTest.java failed: Warning found in stdout |
JDK-8345134 | Test sun/security/tools/jarsigner/ConciseJarsigner.java failed: unable to find valid certification path to requested target |
JDK-8345185 | Update jpackage to not include service bindings by default |
JDK-8345276 | Remove EA from the JDK 24 version string with first RC promotion |
JDK-8345368 | java/io/File/createTempFile/SpecialTempFile.java fails on Windows Server 2025 |
JDK-8345569 | [ubsan] adjustments to filemap.cpp and virtualspace.cpp for macOS aarch64 |
JDK-8345590 | AIX 'make all' fails after JDK-8339480 |
JDK-8345625 | Better HTTP connections |
JDK-8345676 | [ubsan] ProcessImpl_md.c:561:40: runtime error: applying zero offset to null pointer on macOS aarch64 |
JDK-8345728 | [Accessibility,macOS,Screen Magnifier]: JCheckbox unchecked state does not magnify but works for checked state |
JDK-8346049 | jdk/test/lib/security/timestamp/TsaServer.java warnings |
JDK-8346264 | "Total compile time" counter should include time spent in failing/bailout compiles |
JDK-8346285 | Update jarsigner compatibility test for change in default digest algorithm |
JDK-8346581 | JRadioButton/ButtonGroupFocusTest.java fails in CI on Linux |
JDK-8346587 | Distrust TLS server certificates anchored by Camerfirma Root CAs |
JDK-8346671 | java/nio/file/Files/probeContentType/Basic.java fails on Windows 2025 |
JDK-8346705 | SNI not sent with Java 22+ using java.net.http.HttpClient.Builder#sslParameters |
JDK-8346832 | runtime/CompressedOops/CompressedCPUSpecificClassSpaceReservation.java fails on RISC-V |
JDK-8346880 | [aix] java/lang/ProcessHandle/InfoTest.java still fails: "reported cputime less than expected" |
JDK-8346881 | [ubsan] logSelection.cpp:154:24 / logSelectionList.cpp:72:94 : runtime error: applying non-zero offset 1 to null pointer |
JDK-8346888 | [ubsan] block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int' |
JDK-8346972 | Test java/nio/channels/FileChannel/LoopingTruncate.java fails sometimes with IOException: There is not enough space on the disk |
JDK-8347000 | Bug in com/sun/net/httpserver/bugs/B6361557.java test |
JDK-8347018 | C2: Insertion of Assertion Predicates ignores the effects of PhaseIdealLoop::clone_up_backedge_goo() |
JDK-8347038 | [JMH] jdk.incubator.vector.SpiltReplicate fails NoClassDefFoundError |
JDK-8347126 | gc/stress/TestStressG1Uncommit.java gets OOM-killed |
JDK-8347171 | (dc) java/nio/channels/DatagramChannel/InterruptibleOrNot.java fails with virtual thread factory |
JDK-8347173 | java/net/DatagramSocket/InterruptibleDatagramSocket.java fails with virtual thread factory |
JDK-8347267 | [macOS]: UnixOperatingSystem.c:67:40: runtime error: division by zero |
JDK-8347268 | [ubsan] logOutput.cpp:357:21: runtime error: applying non-zero offset 1 to null pointer |
JDK-8347286 | (fs) Remove some extensions from java/nio/file/Files/probeContentType/Basic.java |
JDK-8347296 | WinInstallerUiTest fails in local test runs if the path to test work directory is longer that regular |
JDK-8347298 | Bug in JPackageCommand.ignoreFakeRuntime() |
JDK-8347300 | Don’t exclude the "PATH" var from the environment when running app launchers in jpackage tests |
JDK-8347302 | Mark test tools/jimage/JImageToolTest.java as flagless |
JDK-8347373 | HTTP/2 flow control checks may count unprocessed data twice |
JDK-8347377 | Add validation checks for ICC_Profile header fields |
JDK-8347427 | JTabbedPane/8134116/Bug8134116.java has no license header |
JDK-8347564 | ZGC: Crash in DependencyContext::clean_unloading_dependents |
JDK-8347576 | Error output in libjsound has non matching format strings |
JDK-8347629 | Test FailOverDirectExecutionControlTest.java fails with -Xcomp |
JDK-8347718 | Unexpected NullPointerException in C2 compiled code due to ReduceAllocationMerges |
JDK-8347740 | java/io/File/createTempFile/SpecialTempFile.java failing |
JDK-8347847 | Enhance jar file support |
JDK-8347995 | Race condition in jdk/java/net/httpclient/offline/FixedResponseHttpClient.java |
JDK-8347997 | assert(false) failed: EA: missing memory path |
JDK-8348102 | java/net/httpclient/HttpClientSNITest.java fails intermittently |
JDK-8348110 | Update LCMS to 2.17 |
JDK-8348261 | assert(n→is_Mem()) failed: memory node required |
JDK-8348299 | Update List/ItemEventTest/ItemEventTest.java |
JDK-8348323 | Corrupted timezone string in JVM crash log |
JDK-8348356 | Update the release version after forking Apr CPU25_04 |
JDK-8348562 | ZGC: segmentation fault due to missing node type check in barrier elision analysis |
JDK-8348582 | Set -fstack-protector when building with clang |
JDK-8348596 | Update FreeType to 2.13.3 |
JDK-8348597 | Update HarfBuzz to 10.4.0 |
JDK-8348598 | Update Libpng to 1.6.47 |
JDK-8348600 | Update PipeWire to 1.3.81 |
JDK-8348675 | TrayIcon tests fail in Ubuntu 24.10 Wayland |
JDK-8348936 | [Accessibility,macOS,VoiceOver] VoiceOver doesn’t announce untick on toggling the checkbox with "space" key on macOS |
JDK-8348989 | Better Glyph drawing |
JDK-8349002 | GenShen: Deadlock during shutdown |
JDK-8349039 | Adjust exception No type named <ThreadType> in database |
JDK-8349058 | 'internal proprietary API' warnings make javac warnings unusable |
JDK-8349084 | Update vectors used in several PQC benchmarks |
JDK-8349111 | Enhance Swing supports |
JDK-8349150 | Support precompiled headers on AIX |
JDK-8349183 | [BACKOUT] Optimization for StringBuilder append boolean & null |
JDK-8349200 | [JMH] time.format.ZonedDateTimeFormatterBenchmark fails |
JDK-8349213 | G1: Clearing bitmaps during collection set merging not claimed by region |
JDK-8349214 | Improve size optimization flags for MSVC builds |
JDK-8349239 | [BACKOUT] Reuse StringLatin1::putCharsAt and StringUTF16::putCharsAt |
JDK-8349348 | Refactor ClassLoaderDeadlock.sh and Deadlock.sh to run fully in java |
JDK-8349358 | [JMH] Cannot access class jdk.internal.vm.ContinuationScope |
JDK-8349370 | Bump version numbers for 24.0.2 |
JDK-8349375 | Cleanup AIX special file build settings |
JDK-8349378 | Build splashscreen lib with SIZE optimization |
JDK-8349492 | Update sun/security/pkcs12/KeytoolOpensslInteropTest.java to use a recent Openssl version |
JDK-8349501 | Relocate supporting classes in security/testlibrary to test/lib/jdk tree |
JDK-8349551 | Failures in tests after JDK-8345625 |
JDK-8349584 | Improve compiler processing |
JDK-8349594 | Enhance TLS protocol support |
JDK-8349623 | [ASAN] Gtest os_linux.glibc_mallinfo_wrapper_vm fails |
JDK-8349637 | Integer.numberOfLeadingZeros outputs incorrectly in certain cases |
JDK-8349751 | AIX build failure after upgrade pipewire to 1.3.81 |
JDK-8349753 | Incorrect use of CodeBlob::is_buffer_blob() in few places |
JDK-8349787 | java/lang/Thread/virtual/ThreadPollOnYield.java#default passes unexpectedly without libVThreadPinner.so |
JDK-8349943 | [JMH] Use jvmArgs consistently |
JDK-8350103 | Test containers/systemd/SystemdMemoryAwarenessTest.java fails on Linux ppc64le SLES15 SP6 |
JDK-8350137 | After JDK-8348975, Linux builds contain man pages for windows only tools |
JDK-8350201 | Out of bounds access on Linux aarch64 in os::print_register_info |
JDK-8350202 | Tune for Power10 CPUs on Linux ppc64le |
JDK-8350211 | CTW: Attempt to preload all classes in constant pool |
JDK-8350260 | Improve HTML instruction formatting in PassFailJFrame |
JDK-8350313 | Include timings for leaving safepoint in safepoint logging |
JDK-8350386 | Test TestCodeCacheFull.java fails with option -XX:-UseCodeCacheFlushing |
JDK-8350483 | AArch64: turn on signum intrinsics by default on Ampere CPUs |
JDK-8350498 | Remove two Camerfirma root CA certificates |
JDK-8350499 | Minimal build fails with slowdebug builds |
JDK-8350546 | Several java/net/InetAddress tests fails UnknownHostException |
JDK-8350682 | [JMH] vector.IndexInRangeBenchmark failed with IndexOutOfBoundsException for size=1024 |
JDK-8350683 | Non-C2 / minimal JVM crashes in the build on ppc64 platforms |
JDK-8350786 | Some java/lang jtreg tests miss requires vm.hasJFR |
JDK-8350820 | OperatingSystemMXBean CpuLoad() methods return -1.0 on Windows |
JDK-8350924 | javax/swing/JMenu/4213634/bug4213634.java fails |
JDK-8350991 | Improve HTTP client header handling |
JDK-8351033 | RISC-V: TestFloat16ScalarOperations asserts with offset (4210) is too large to be patched in one beq/bge/bgeu/blt/bltu/bne instruction! |
JDK-8351223 | Update localized resources in keytool and jarsigner |
JDK-8351233 | [ASAN] avx2-emu-funcs.hpp:151:20: error: ‘D.82188’ is used uninitialized |
JDK-8351277 | Remove pipewire from AIX build |
JDK-8351382 | New test containers/docker/TestMemoryWithSubgroups.java is failing |
JDK-8351500 | G1: NUMA migrations cause crashes in region allocation |
JDK-8351639 | Improve debuggability of test/langtools/jdk/jshell/JdiHangingListenExecutionControlTest.java test |
JDK-8351665 | Remove unused UseNUMA in os_aix.cpp |
JDK-8351933 | Inaccurate masking of TC subfield decrement in ForkJoinPool |
JDK-8352109 | java/awt/Desktop/MailTest.java fails in platforms where Action.MAIL is not supported |
JDK-8352302 | Test sun/security/tools/jarsigner/TimestampCheck.java is failing |
JDK-8352508 | [Redo] G1: Pinned regions with pinned objects only reachable by native code crash VM |
JDK-8352512 | TestVectorZeroCount: counter not reset between iterations |
JDK-8352706 | httpclient HeadTest does not run on HTTP2 |
JDK-8352716 | (tz) Update Timezone Data to 2025b |
JDK-8352866 | TestLogJIT.java runs wrong test class |
JDK-8352946 | SEGV_BND signal code of SIGSEGV missing from our signal-code table |
JDK-8353053 | (fs) Add support for UserDefinedFileAttributeView on AIX |
JDK-8353066 | Properly detect Windows/aarch64 as build platform |
JDK-8353185 | Introduce the concept of upgradeable files in context of JEP 493 |
JDK-8353237 | [AArch64] Incorrect result of VectorizedHashCode intrinsic on Cortex-A53 |
JDK-8353261 | Problemlist 5 tests due to failures in the CI pipeline |
JDK-8353274 | [PPC64] Bug related to -XX:+UseCompactObjectHeaders -XX:-UseSIGTRAP in JDK-8305895 |
JDK-8353329 | Small memory leak when create GrowableArray with initial size 0 |
JDK-8353709 | Debug symbols bundle should contain full debug files when building --with-external-symbols-in-bundles=public |
JDK-8353740 | Problemlist 2 tests due to failures in the CI pipeline |
JDK-8353787 | Increased number of SHA-384-Digest java.util.jar.Attributes$Name instances leading to higher memory footprint |
JDK-8353861 | Problemlist 1 test due to failures in the CI pipeline |
JDK-8353946 | Incorrect WINDOWS ifdef in os::build_agent_function_name |
JDK-8354657 | Problemlist 2 tests due to failures in the CI pipeline |
JDK-8354831 | Problemlist 2 tests due to failures in the CI pipeline |
JDK-8354861 | Change milestone to fcs for all releases |
JDK-8354904 | [Backout] JDK-8345625: Better HTTP connections |
JDK-8355524 | Only every second line in upgradeable files is being used |
JDK-8355884 | [macos] java/awt/Frame/I18NTitle.java fails on MacOS |
JDK-8356096 | ISO 4217 Amendment 179 Update |
JDK-8359170 | Add 2 TLS and 2 CS Sectigo roots |
JDK-8360147 | Better Glyph drawing redux |
JFX issues
This is the list of JFX issues fixed in this release.
Issue ID | Summary |
---|---|
JDK-8318985 | [macos] Incorrect 3D lighting on macOS 14 and later |
JDK-8347937 | Canvas pattern test fails and crashes on WebKit 620.1 |
JDK-8350136 | Create release notes for JavaFX 24 |
JDK-8350284 | WebKit 620.1 crashes on startup on Windows x86 32-bit |
JDK-8351264 | Some images don’t load with WebKit 620.1 |
JDK-8351602 | Change JavaFX release version to 24.0.2 in jfx24u |
JDK-8351653 | Webkit debug build failure after update to 620.1 |
JDK-8352162 | Update libxml2 to 2.13.8 |
JDK-8352164 | Update libxslt to 1.1.43 |
JDK-8353916 | Unexpected event type for DOM mutation events with WebKit 620.1 |
JDK-8354182 | Create release notes for JavaFX 24.0.1 |
JDK-8354318 | freetype.c: compilation error: 'incompatible pointer type' with gcc 14 |
JDK-8354336 | gstclock.c: compilation error: 'incompatible pointer type' with gcc 14 |
JDK-8354337 | GHA: Windows build fails with chmod permission error |
JDK-8354876 | Update SQLite to 3.49.1 |
JDK-8354940 | Fail to sign in to Microsoft sites with WebView |
6. Updates to Third Party Libraries
This is the list of changes in the third party libraries.
Library | Full name | New Version | Module | JBS number |
---|---|---|---|---|
FreeType | FreeType | 2.13.3 | java.desktop | 8348596 |
HarfBuzz | HarfBuzz | 10.4.0 | java.desktop | 8348597 |
LCMS | LittleCMS | 2.17 | java.desktop | 8348110 |
Libpng | Libpng | 1.6.47 | java.desktop | 8348598 |
libxml2 | libxml2 | 2.13.8 | javafx.web | 8352162 |
libxslt | libxslt | 1.1.43 | javafx.web | 8352164 |
PipeWire | PipeWire | 1.3.81 | java.desktop | 8348600 |
SQLite | SQLite | 3.49.1 | javafx.web | 8354876 |
7. Upgrading to the New Version
To keep your Liberica JDK up-to-date and secure, always upgrade to the newest available version once it is released. To upgrade, install the new version over the previous one. For the installation instructions, see Liberica JDK Installation Guide.