Liberica JDK 23.0.2+9: Release Notes

1. Version information

This document provides information about Liberica JDK 23.0.2 release.

The full version string for this update release is 23.0.2+9. The version number is 23.

Liberica JDK 23 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-8337354

Summary: Add explicit non-null return value expectations to Object.toString()

Description: An explicit non-null return value expectations were added to Object.toString() method.

JDK-8337359

Summary: MemorySegment::reinterpret removes read-only property

Description: The MemorySegment::reinterpret method returned a new memory segment that did not carry over the read-only property of the segment it was create from, but it should have.

JDK-8337360

Summary: Chained builders not sending transformed models to next transforms

Description: ClassFile API chained builders did not emit certain elements through downstream transforms and returned wrong builder for chaining.

JDK-8338163

Summary: Distrust TLS server certificates issued after Oct 2024 and anchored by Entrust Root CAs

Description: Google and Mozilla have announced plans to distrust TLS Server certificates issued by Entrust. This enhancement implements similar restrictions in the JDK. The restrictions is enforced in the SunJSSE Provider of the Java Secure Socket Extension (JSSE) API. A TLS session will not be negotiated if the server’s certificate chain is anchored by any of the Certificate Authorities specified in this issue and the certificate’s notBefore date is after October 31, 2024. If necessary, you can work around the restrictions by removing 'ENTRUST_TLS' from the 'jdk.security.caDistrustPolicies' security property.

JDK-8338914

Summary: BasicFileAttributes.creationTime() falls back to epoch if birth time is unavailable (Linux)

Description: The change which resolved JDK-8316304 added support for obtaining the file creation time from the birth timestamp. Prior to this change, the last modified time had been returned to the creation time. After this change, if the birth timestamp was unavailable, for example if it was not supported by the file system even though the operating system supported it, then the epoch (0) was returned to the creation time. This could cause problems in situations which relied on the old behavior.

JDK-8339724

Summary: {ClassLoading,Memory}MXBean::isVerbose methods are inconsistent with their setVerbose methods

Description: The ClassLoadingMXBean and MemoryMXBean APIs have setVerbose methods to control verbose mode and isVerbose methods to query it. Some JCK tests expect setVerbose(false) to disable verbose mode and, subsequently, isVerbose() to return false. However, if logging to a file is enabled by using '-Xlog' on the java launcher command line, isVerbose() returned true even after calling setVerbose(false).

JDK-8341129

Summary: Add 2 SSL.com TLS roots

Description: New SSL.com TLS roots are added as they are the issuing CA used by Entrust going forward.

JDK-8341130

Summary: Change Entrust TLS distrust date to November 12, 2024

Description: Google has changed their distrust date for Entrust from November 1 to November 12, 2024. Entrust has also changed the date they plan to use SSL.com as the issuing CA for public TLS server certificates to November 12. To align with those updated dates, the distrust date was changed to November 12, 2024.

JDK-8342297

Summary: Update Timezone Data to 2024b

Description: This OpenJDK release upgrades the in-tree copy of the IANA timezone database to 2024b. This timezone update is primarily concerned with improving historical data for Mexico, Mongolia and Portugal. It also makes Asia/Choibalsan an alias for Asia/Ulaanbaatar and makes the MET timezone the same as CET.

Discontinued OS support

Note that Liberica JDK 23.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 23.0.2 upgrades the in-tree copy of the IANA timezone database to 2024b. This timezone update is primarily concerned with improving historical data for Mexico, Mongolia and Portugal. It also makes Asia/Choibalsan an alias for Asia/Ulaanbaatar and makes the MET timezone the same as CET.

The 2024b update also makes a number of legacy timezone IDs equal to geographical names rather than fixed offsets, as follows:

  • EST → America/Panama instead of -5:00

  • MST → America/Phoenix instead of -7:00

  • HST → Pacific/Honolulu instead of -10:00

For long-term support releases of Liberica JDK, this change is overridden locally to retain the existing fixed offset mapping.

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 IDCVSS scoreComponentModuleAttack VectorComplexityPrivilegesUser InteractionScopeConfidentialityIntegrityAvailability

CVE-2025-21502

4.8

hotspot

compiler

network

high

none

none

unchanged

low

low

none

5. Resolved Issues

JDK issues

This is the list of general JDK issues fixed in this release.

Issue IDSummary

JDK-8028127

Regtest java/security/Security/SynchronizedAccess.java is incorrect

JDK-8302111

Serialization considerations

JDK-8317116

Provide layouts for multiple test UI in PassFailJFrame

JDK-8319933

Disable tests for JDK-8280481 on Graal

JDK-8321509

False positive in get_trampoline fast path causes crash

JDK-8323688

C2: Fix UB of jlong overflow in PhaseIdealLoop::is_counted_loop()

JDK-8324672

Update jdk/java/time/tck/java/time/TCKInstant.java now() to be more robust

JDK-8325937

runtime/handshake/HandshakeDirectTest.java causes "monitor end should be strictly below the frame pointer" assertion failure on AArch64

JDK-8326616

tools/javac/patterns/Exhaustiveness.java intermittently Timeout signalled after 480 seconds

JDK-8328723

IP Address error when client enables HTTPS endpoint check on server socket

JDK-8330045

Enhance array handling

JDK-8330702

Update failure handler to don’t generate Error message if cores actions are empty

JDK-8331391

Enhance the keytool code by invoking the buildTrustedCerts method for essential options

JDK-8332113

Update nsk.share.Log to be always verbose

JDK-8332461

ubsan : dependencies.cpp:906:3: runtime error: load of value 4294967295, which is not a valid value for type 'DepType'

JDK-8332697

ubsan: shenandoahSimpleBitMap.inline.hpp:68:23: runtime error: signed integer overflow: -9223372036854775808 - 1 cannot be represented in type 'long int'

JDK-8332699

ubsan: jfrEventSetting.inline.hpp:31:43: runtime error: index 163 out of bounds for type 'jfrNativeEventSetting [162]'

JDK-8332901

Select{Current,New}ItemTest.java for Choice don’t open popup on macOS

JDK-8332903

ubsan: opto/output.cpp:1002:18: runtime error: load of value 171, which is not a valid value for type 'bool'

JDK-8333088

ubsan: shenandoahAdaptiveHeuristics.cpp:245:44: runtime error: division by zero

JDK-8333098

ubsan: bytecodeInfo.cpp:318:59: runtime error: division by zero

JDK-8333248

VectorGatherMaskFoldingTest.java failed when maximum vector bits is 64

JDK-8333277

ubsan: mlib_ImageScanPoly.c:292:43: runtime error: division by zero

JDK-8333306

gc/arguments/TestParallelGCErgo.java fails when largepage are enabled

JDK-8333317

Test sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java failed with: Invalid ECDH ServerKeyExchange signature

JDK-8333354

ubsan: frame.inline.hpp:91:25: and src/hotspot/share/runtime/frame.inline.hpp:88:29: runtime error: member call on null pointer of type 'const struct SmallRegisterMap'

JDK-8333361

ubsan,test : libHeapMonitorTest.cpp:518:9: runtime error: null pointer passed as argument 2, which is declared to never be null

JDK-8333363

ubsan: instanceKlass.cpp: runtime error: member call on null pointer of type 'struct AnnotationArray'

JDK-8333391

Test com/sun/jdi/InterruptHangTest.java failed: Thread was never interrupted during sleep

JDK-8333522

JFR SwapSpace event might read wrong free swap space size

JDK-8333639

ubsan: cppVtables.cpp:81:55: runtime error: index 14 out of bounds for type 'long int [1]'

JDK-8333728

ubsan: shenandoahFreeSet.cpp:1347:24: runtime error: division by zero

JDK-8333730

ubsan: FieldIndices/libFieldIndicesTest.cpp:276:11: runtime error: null pointer passed as argument 2, which is declared to never be null

JDK-8333754

Add a Test against ECDSA and ECDH NIST Test vector

JDK-8333791

Fix memory barriers for @Stable fields

JDK-8333824

Unused ClassValue in VarHandles

JDK-8334057

JLinkReproducibleTest.java support receive test.tool.vm.opts

JDK-8334147

Shenandoah: Avoid taking lock for disabled free set logging

JDK-8334166

Enable binary check

JDK-8334229

Optimize InterpreterOopMap layout

JDK-8334405

java/nio/channels/Selector/SelectWithConsumer.java#id0 failed in testWakeupDuringSelect

JDK-8334482

Shenandoah: Deadlock when safepoint is pending during nmethods iteration

JDK-8334560

[PPC64]: postalloc_expand_java_dynamic_call_sched does not copy all fields

JDK-8334562

Automate com/sun/security/auth/callback/TextCallbackHandler/Default.java test

JDK-8334564

VM startup: fatal error: FLAG_SET_ERGO cannot be used to set an invalid value for NonNMethodCodeHeapSize

JDK-8334567

[test] runtime/os/TestTracePageSizes move ppc handling

JDK-8334618

ubsan: support setting additional ubsan check options

JDK-8334769

Shenandoah: Move CodeCache_lock close to its use in ShenandoahConcurrentNMethodIterator

JDK-8335007

Inline OopMapCache table

JDK-8335142

compiler/c1/TestTraceLinearScanLevel.java occasionally times out with -Xcomp

JDK-8335150

Test LogGeneratedClassesTest.java fails on rpmbuild mock enviroment

JDK-8335172

Add manual steps to run security/auth/callback/TextCallbackHandler/Password.java test

JDK-8335237

ubsan: vtableStubs.hpp is_vtable_stub exclude from ubsan checks

JDK-8335267

[XWayland] move screencast tokens from .awt to .java folder

JDK-8335283

Build failure due to 'no_sanitize' attribute directive ignored

JDK-8335344

test/jdk/sun/security/tools/keytool/NssTest.java fails to compile

JDK-8335397

Improve reliability of TestRecursiveMonitorChurn.java

JDK-8335428

Enhanced Building of Processes

JDK-8335449

runtime/cds/DeterministicDump.java fails with File content different at byte …​

JDK-8335493

check_gc_overhead_limit should reset SoftRefPolicy::_should_clear_all_soft_refs

JDK-8335530

Java file extension missing in AuthenticatorTest

JDK-8335664

Parsing jsr broken: assert(bci>= 0 && bci < c→method()→code_size()) failed: index out of bounds

JDK-8335709

C2: assert(!loop→is_member(get_loop(useblock))) failed: must be outside loop

JDK-8335713

Enhance vectorization analysis

JDK-8335743

jhsdb jstack cannot print some information on the waiting thread

JDK-8335789

[TESTBUG] XparColor.java test fails with Error. Parse Exception: Invalid or unrecognized bugid: @

JDK-8335904

Fix invalid comment in ShenandoahLock

JDK-8336148

Test runtime/locking/TestRecursiveMonitorChurn.java failed: Unexpected Inflation

JDK-8336240

Test com/sun/crypto/provider/Cipher/DES/PerformanceTest.java fails with java.lang.ArithmeticException

JDK-8336284

Test TestClhsdbJstackLock.java/TestJhsdbJstackLock.java fails with -Xcomp after JDK-8335743

JDK-8336315

tools/jpackage/windows/WinChildProcessTest.java Failed: Check is calculator process is alive

JDK-8336342

Fix known X11 library locations in sysroot

JDK-8336343

Add more known sysroot library locations for ALSA

JDK-8336363

Update the release version after forking Oct CPU24_10

JDK-8336413

gtk headers : Fix typedef redeclaration of GMainContext and GdkPixbuf

JDK-8336564

Enhance mask blit functionality redux

JDK-8336640

Shenandoah: Parallel worker use in parallel_heap_region_iterate

JDK-8336692

Redo fix for JDK-8284620

JDK-8336854

CAInterop.java#actalisauthenticationrootca conflicted with /manual and /timeout

JDK-8336914

Shenandoah: Missing verification steps after JDK-8255765

JDK-8336926

jdk/internal/util/ReferencedKeyTest.java can fail with ConcurrentModificationException

JDK-8336928

GHA: Bundle artifacts removal broken

JDK-8336942

Improve test coverage for class loading elements with annotations of different retentions

JDK-8337024

Bump version numbers for 23.0.2

JDK-8337066

Repeated call of StringBuffer.reverse with double byte string returns wrong result

JDK-8337067

Test runtime/classFileParserBug/Bad_NCDFE_Msg.java won’t compile

JDK-8337283

configure.log is truncated when build dir is on different filesystem

JDK-8337320

Update ProblemList.txt with tests known to fail on XWayland

JDK-8337331

crash: pinned virtual thread will lead to jvm crash when running with the javaagent option

JDK-8337622

IllegalArgumentException in java.lang.reflect.Field.get

JDK-8337664

Distrust TLS server certificates issued after Oct 2024 and anchored by Entrust Root CAs

JDK-8337753

Target class of upcall stub may be unloaded

JDK-8337780

RISC-V: C2: Change C calling convention for sp to NS

JDK-8337795

Type annotation attached to incorrect type during class reading

JDK-8337810

ProblemList BasicDirectoryModel/LoaderThreadCount.java on Windows

JDK-8337819

Update GHA JDKs to 22.0.2

JDK-8337876

[IR Framework] Add support for IR tests with @Stable

JDK-8337886

java/awt/Frame/MaximizeUndecoratedTest.java fails in OEL due to a slight color difference

JDK-8337958

Out-of-bounds array access in secondary_super_cache

JDK-8337968

Problem list compiler/vectorapi/VectorRebracket128Test.java

JDK-8337971

Problem list several jvmci tests on linux-riscv64 until JDK-8331704 is fixed

JDK-8337998

CompletionFailure in getEnclosingType attaching type annotations

JDK-8338058

map_or_reserve_memory_aligned Windows enhance remap assertion

JDK-8338101

remove old remap assertion in map_or_reserve_memory_aligned after JDK-8338058

JDK-8338109

java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java duplicate in ProblemList

JDK-8338110

Exclude Fingerprinter::do_type from ubsan checks

JDK-8338112

Test testlibrary_tests/ir_framework/tests/TestPrivilegedMode.java fails with release build

JDK-8338286

GHA: Demote x86_32 to hotspot build only

JDK-8338380

Update TLSCommon/interop/AbstractServer to specify an interface to listen for connections

JDK-8338389

[JFR] Long strings should be added to the string pool

JDK-8338402

GHA: some of bundles may not get removed

JDK-8338696

(fs) BasicFileAttributes.creationTime() falls back to epoch if birth time is unavailable (Linux)

JDK-8338751

ConfigureNotify behavior has changed in KWin 6.2

JDK-8338759

Add extra diagnostic to java/net/InetAddress/ptr/Lookup.java

JDK-8338924

C1: assert(0 ⇐ i && i < _len) failed: illegal index 5 for length 5

JDK-8339154

Cleanups and JUnit conversion of test/jdk/java/util/zip/Available.java

JDK-8339180

Enhanced Building of Processes: Follow-on Issue

JDK-8339248

RISC-V: Remove li64 macro assembler routine and related code

JDK-8339384

Unintentional IOException in jdk.jdi module when JDWP end of stream occurs

JDK-8339386

Assertion on AIX - original PC must be in the main code section of the compiled method

JDK-8339416

[s390x] Provide implementation for resolve_global_jobject

JDK-8339487

ProcessHandleImpl os_getChildren sysctl call - retry in case of ENOMEM and enhance exception message

JDK-8339548

GHA: RISC-V: Use Debian snapshot archive for bootstrap

JDK-8339560

Unaddressed comments during code review of JDK-8337664

JDK-8339591

Mark jdk/jshell/ExceptionMessageTest.java intermittent

JDK-8339637

(tz) Update Timezone Data to 2024b

JDK-8339644

Improve parsing of Day/Month in tzdata rules

JDK-8339648

ZGC: Division by zero in rule_major_allocation_rate

JDK-8339725

Concurrent GC crashed due to GetMethodDeclaringClass

JDK-8339731

java.desktop/share/classes/javax/swing/text/html/default.css typo in margin settings

JDK-8339741

RISC-V: C ABI breakage for integer on stack

JDK-8339787

Add some additional diagnostic output to java/net/ipv6tests/UdpTest.java

JDK-8339803

Acknowledge case insensitive unambiguous keywords in tzdata files

JDK-8340007

Refactor KeyEvent/FunctionKeyTest.java

JDK-8340008

KeyEvent/KeyTyped/Numpad1KeyTyped.java has 15 seconds timeout

JDK-8340073

Support "%z" time zone abbreviation format in TZ files

JDK-8340109

Ubsan: ciEnv.cpp:1660:65: runtime error: member call on null pointer of type 'struct CompileTask'

JDK-8340210

Add positionTestUI() to PassFailJFrame.Builder

JDK-8340214

C2 compilation asserts with "no node with a side effect" in PhaseIdealLoop::try_sink_out_of_loop

JDK-8340230

Tests crash: assert(is_in_encoding_range || k→is_interface() || k→is_abstract()) failed: sanity

JDK-8340306

Add border around instructions in PassFailJFrame

JDK-8340308

PassFailJFrame: Make rows default to number of lines in instructions

JDK-8340313

Crash due to invalid oop in nmethod after C1 patching

JDK-8340365

Position the first window of a window list

JDK-8340383

VM issues warning failure to find kernel32.dll on Windows nanoserver

JDK-8340387

Update OS detection code to recognize Windows Server 2025

JDK-8340398

[JVMCI] Unintuitive behavior of UseJVMCICompiler option

JDK-8340418

GHA: MacOS AArch64 bundles can be removed prematurely

JDK-8340461

Amend description for logArea

JDK-8340466

Add description for PassFailJFrame constructors

JDK-8340586

JdkJfrEvent::get_all_klasses stores non-strong oops in JNI handles

JDK-8340590

RISC-V: C2: Small improvement to vector gather load and scatter store

JDK-8340657

[PPC64] SA determines wrong unextendedSP

JDK-8340684

Reading from an input stream backed by a closed ZipFile has no test coverage

JDK-8340785

Update description of PassFailJFrame and samples

JDK-8340799

Add border inside instruction frame in PassFailJFrame

JDK-8340804

doc/building.md update Xcode instructions to note that full install is required

JDK-8340812

LambdaForm customization via MethodHandle::updateForm is not thread safe

JDK-8340815

Add SECURITY.md file

JDK-8340824

C2: Memory for TypeInterfaces not reclaimed by hashcons()

JDK-8340899

Remove wildcard bound in PositionWindows.positionTestWindows

JDK-8340923

The class LogSelection copies uninitialized memory

JDK-8341024

[test] build/AbsPathsInImage.java fails with OOM when using ubsan-enabled binaries

JDK-8341057

Add 2 SSL.com TLS roots

JDK-8341059

Change Entrust TLS distrust date to November 12, 2024

JDK-8341127

Extra call to MethodHandle::asType from memory segment var handles fails to inline

JDK-8341146

RISC-V: Unnecessary fences used for load-acquire in template interpreter

JDK-8341235

Improve default instruction frame title in PassFailJFrame

JDK-8341261

Tests assume UnlockExperimentalVMOptions is disabled by default

JDK-8341554

Shenandoah: Missing heap lock when updating usage for soft ref policy

JDK-8341562

RISC-V: Generate comments in -XX:+PrintInterpreter to link to source code

JDK-8341658

RISC-V: Test DateFormatProviderTest.java run timeouted

JDK-8341668

Shenandoah: assert(tail_bits < (idx_t)BitsPerWord) failed: precondition

JDK-8341688

Aarch64: Generate comments in -XX:+PrintInterpreter to link to source code

JDK-8341709

Change milestone to ea for JDK23.0.2

JDK-8341806

Gcc version detection failure on Alinux3

JDK-8341881

[REDO] java/nio/file/attribute/BasicFileAttributeView/CreationTime.java#tmp fails on alinux3

JDK-8341966

Broken annotated module may lead to an exception in javac

JDK-8341997

Tests create files in src tree instead of scratch dir

JDK-8342014

RISC-V: ZStoreBarrierStubC2 clobbers rflags

JDK-8342114

Change milestone to fcs for all releases

JDK-8342145

File libCreationTimeHelper.c compile fails on Alpine

JDK-8342489

compiler/c2/irTests/TestVectorizationMismatchedAccess.java fails on big-endian platforms

JDK-8342496

C2/Shenandoah: SEGV in compiled code when running jcstress

JDK-8342612

Increase memory usage of compiler/c2/TestScalarReplacementMaxLiveNodes.java

JDK-8342681

TestLoadBypassesNullCheck.java fails improperly specified VM option

JDK-8342701

[PPC64] TestOSRLotsOfLocals.java crashes

JDK-8342905

Thread.setContextClassloader from thread in FJP commonPool task no longer works after JDK-8327501 redux

JDK-8342962

[s390x] TestOSRLotsOfLocals.java crashes

JFX issues

This is the list of JFX issues fixed in this release.

Issue IDSummary

JDK-8333374

Cannot invoke "com.sun.prism.RTTexture.contentsUseful()" because "this.txt" is null

JDK-8335469

[XWayland] crash when an AWT ScreenCast session overlaps with an FX ScreenCast session

JDK-8335714

Enhance playing MP3s

JDK-8335715

Improve Direct Show support

JDK-8337827

[XWayland] Skip failing tests on Wayland

JDK-8339247

Create release notes for JavaFX 23

JDK-8339848

Change JavaFX release version to 23.0.2 in jfx23u

JDK-8340208

Additional WebKit 619.1 fixes from WebKitGTK 2.44.4

JDK-8340954

Add SECURITY.md file

JDK-8341686

FX: Update copyright year in docs, readme files to 2025

JDK-8341911

Create release notes for JavaFX 23.0.1

JDK-8341920

Intermittent WebKit build failure on Windows generating PDB files in 619.1

JDK-8342917

GHA: Intermittent build failure on Linux while downloading ant

JDK-8343630

Pass AccessControlContext to/from WebKit as opaque object

JDK-8343760

GHA: macOS / aarch64 builds depend on Xcode 14 which will be removed

6. Updates to Third Party Libraries

This release does not contain any changes in the third party libraries.

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.

ON THIS PAGE