Liberica JDK 22.0.1+10: Release Notes

1. Introduction

This document provides the late-breaking information about Liberica JDK 22.0.1 release.

The full version string for this update release is 22.0.1+10. The version number is 22.

2. Liberica JDK 22.0.1+10

Liberica is a certified, Java SE 22-compliant distribution of OpenJDK 22, which works on server (Linux x86_64, Linux ARM64, Windows 64), desktop (Windows 64, Mac, Linux x86_64), and embedded devices (Linux ARM64, Linux ARMv7, including Raspberry Pi 2 & 3 (ARMv6 hardfloat)). It has the following notable additions:

  • Linux x86_64 version contains support for ZGC.

  • Linux x86_64, ARMv8 and ARMv7 distributions include a choice of Client VM, Server VM and Minimal VM.

  • Alpine Linux x86_64 and aarch64 are built with musl support.

  • Windows x86_64, Windows ARMv8, Mac, Linux x86_64, and Linux ARMv7 distributions contain OpenJFX 22.

  • Linux ARMv7 distribution contains Device IO API compiled for Raspberry Pi.

Refer to the Oracle JDK 22.0.1 release notes for further information on JDK 22 features. This document further outlines the peculiarities of Liberica distribution as compared to Oracle JDK 22 distribution.

Discontinued OS support

Note that Liberica JDK 22.0.1 is not available for and cannot be run on the following operating systems:

  • Windows x86 (32-bit)

  • macOS 10.x

3. Liberica JDK 22 distribution

Liberica JDK 22 is distributed as .rpm, .zip, .deb and .tar.gz packages. Please select the most appropriate for your purposes.

Liberica JDK 22 introduced all new features supported by OpenJDK 22.

With the introduction of the Jigsaw feature in JDK 9 and Minimal VM it is now possible to create a Runtime that is sufficient to run your application and trim down the size of the Runtime. To generate a Runtime with just the Minimal VM, add --vm=minimal to jlink options.

By default, the Liberica uses Server VM. Server VM and Client VM can be enabled with -server and -client command line options, respectively. In case the deployment requires minimizing the footprint, it may be beneficial to use Minimal VM, which emphasis is a minimal footprint. It has C1 JIT compiler only, Serial GC and no serviceability features.

4. Security Baselines

BellSoft Liberica follows the security baselines for Oracle Java SE. Please refer to the Oracle documentation for a list of issues fixed in a given release.

5. Known Issues

This is the list of known issues in this release.

Issue ID

JDK-8322567

Summary: Increased Startup Time when Using -XX:StartFlightRecording

Description: A noticeable 10% increase in startup time can be observed when using the -XX:StartFlightRecording option with smaller applications.

Workaround: N/A

JDK-8325737

Summary: Files.readString may return incorrect String when UTF-16 or other Charsets

Description: Strings read with java.nio.files.Files.readString may return incorrect strings when decoding with a Charset other than US-ASCII, ISO08859-1, or UTF-8. Reading strings with other multi-byte charsets such as UTF_16 may produce incorrect results.

Workaround: Run the JDK 22 GA build with -XX:-CompactStrings option to disable the use of 'Compact Strings'.

N/A

Summary: LibericaFX and EGL on Raspbian

Description: As of 2017, the default location of Broadcom libEGL.so and libGLESv2.so has changed in Raspbian OS.

Workaround: To leverage hardware EGL acceleration available from Broadcom video drivers in LibericaFX while running a recent Raspbian OS, run the following commands: 1. cd /opt/vc/lib, 2. sudo ln -s libbrcmEGL.so libEGL.so, 3. sudo ln -s libbrcmGLESv2.so libGLESv2.so

6. 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-2023-41993

7.5

javafx

web

network

high

none

required

unchanged

high

high

high

CVE-2024-21002

2.5

javafx

graphics

local

high

none

required

unchanged

none

low

none

CVE-2024-21003

3.1

javafx

graphics

network

high

none

required

unchanged

none

low

none

CVE-2024-21004

2.5

javafx

window-toolkit

local

high

none

required

unchanged

none

low

none

CVE-2024-21005

3.1

javafx

graphics

network

high

none

required

unchanged

none

low

none

CVE-2024-21011

3.7

hotspot

runtime

network

high

none

none

unchanged

none

none

low

CVE-2024-21012

3.7

core-libs

java.net

network

high

none

none

unchanged

none

low

none

CVE-2024-21068

3.7

hotspot

compiler

network

high

none

none

unchanged

none

low

none

7. Notable Issues

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

Issue ID

JDK-8322557

Summary: @param/@return descriptions of ZoneRules#isDaylightSavings() are incorrect

Description: The description was corrected as follows: 'ZoneRules#getStandardOffset() is true if the specified instant is in daylight savings, false otherwise.'

JDK-8324353

Summary: KEM.getInstance() should check if a 3rd-party security provider is signed

Description: When instantiating a third-party security provider’s implementation (class) of a KEM algorithm, the framework will determine the provider’s codebase (JAR file) and verify its signature. In this way, JCA authenticates the provider and ensures that only providers signed by a trusted entity can be plugged into the JCA. This is consistent with other JCE service classes, such as Cipher, Mac, KeyAgreement, and others.

JDK-8324366

Summary: Clarify Locale related system properties

Description: The description for the following system properties was extended: user.language, user.script, user.country (used to be user.region, still exists for compatibility), user.variant, user.extensions.

JDK-8324371

Summary: The system properties page is missing some properties

Description: The page https://docs.oracle.com/en/java/javase/21/docs/api/system-properties.html was updated to include all system properties, such as user.language, user.country, user.variant, and others.

JDK-8324383

Summary: SegmentAllocator:allocateFrom(ValueLayout, MemorySegment,ValueLayout,long,long) spec mismatch in exception scenario

Description: The description was corrected to match the behavior of SegmentAllocator:allocateFrom(ValueLayout,MemorySegment,ValueLayout,long,long).

JDK-8324407

Summary: Consider adding some text re. memory zeroing in Arena::allocate

Description: The following text was added: 'Memory segments {@linkplain #allocate(long, long) allocated} by the returned arena are zero-initialized.'

JDK-8325605

Summary: Regression in round-tripping UTF-16 strings after JDK-8311906

Description: Strings read with java.nio.files.Files.readString may return incorrect strings when decoding with a charset other than US-ASCII, ISO08859-1, or UTF-8. See Known Issues.

JDK-8326323

Summary: Test 'api/java_awt/interactive/SystemTrayTests.html' failed because A blue ball icon is added outside of the system tray

Description: When pressing the 'Add tray icon' button, the blue ball icon is now added to the system tray.

JDK-8326357

Summary: Add Certainly roots R1 and E1

Description: Certainly Root R1 CA certificate was added.

JDK-8326830

Summary: Make TrimNativeHeapInterval a product switch

Description: TrimNativeHeapInterval has been made an official product switch. It allows the JVM to trim the native heap at periodic intervals. This option is only available on Linux with glibc.

8. Resolved Issues

JDK issues

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

Issue IDSummary

JDK-8314164

java/net/HttpURLConnection/HttpURLConnectionExpectContinueTest.java fails intermittently in timeout

JDK-8314275

Incorrect stepping in switch

JDK-8315708

Enhance HTTP/2 client usage

JDK-8317299

safepoint scalarization doesn’t keep track of the depth of the JVM state

JDK-8317804

com/sun/jdi/JdwpAllowTest.java fails on Alpine 3.17 / 3.18

JDK-8318158

RISC-V: implement roundD/roundF intrinsics

JDK-8318340

Improve RSA key implementations

JDK-8318603

Parallelize sun/java2d/marlin/ClipShapeTest.java

JDK-8318696

Do not use LFS64 symbols on Linux

JDK-8319382

com/sun/jdi/JdwpAllowTest.java shows failures on AIX if prefixLen of mask is larger than 32 in IPv6 case

JDK-8319851

Improve exception logging

JDK-8320890

[AIX] Find a better way to mimic dl handle equality

JDK-8321151

JDK-8294427 breaks Windows L&F on all older Windows versions

JDK-8321374

Add a configure option to explicitly set CompanyName property in VersionInfo resource for Windows exe/dll

JDK-8321408

Add Certainly roots R1 and E1

JDK-8321480

ISO 4217 Amendment 176 Update

JDK-8321489

Update LCMS to 2.16

JDK-8321815

Shenandoah: gc state should be synchronized to java threads only once per safepoint

JDK-8321972

test runtime/Unsafe/InternalErrorTest.java timeout on linux-riscv64 platform

JDK-8322092

Bump version numbers for 22.0.1

JDK-8322098

os::Linux::print_system_memory_info enhance the THP output with /sys/kernel/mm/transparent_hugepage/hpage_pmd_size

JDK-8322122

Enhance generation of addresses

JDK-8322159

ThisEscapeAnalyzer crashes for erroneous code

JDK-8322163

runtime/Unsafe/InternalErrorTest.java fails on Alpine after JDK-8320886

JDK-8322417

Console read line with zero out should zero out when throwing exception

JDK-8322725

(tz) Update Timezone Data to 2023d

JDK-8322772

Clean up code after JDK-8322417

JDK-8322783

prioritize /etc/os-release over /etc/SuSE-release in hs_err/info output

JDK-8322790

RISC-V: Tune costs for shuffles with no conversion

JDK-8322945

Problemlist runtime/CompressedOops/CompressedClassPointers.java on AIX

JDK-8323021

Shenandoah: Encountered reference count always attributed to first worker thread

JDK-8323065

Unneccesary CodeBlob lookup in CompiledIC::internal_set_ic_destination

JDK-8323086

Shenandoah: Heap could be corrupted by oom during evacuation

JDK-8323154

C2: assert(cmp != nullptr && cmp→Opcode() == Op_Cmp(bt)) failed: no exit test

JDK-8323170

j2dbench is using outdated javac source/target to be able to build by itself

JDK-8323210

Update the usage of cmsFLAGS_COPY_ALPHA

JDK-8323331

fix typo hpage_pdm_size

JDK-8323428

Shenandoah: Unused memory in regions compacted during a full GC should be mangled

JDK-8323515

Create test alias "all" for all test roots

JDK-8323637

Capture hotspot replay files in GHA

JDK-8323657

Compilation of snippet results in VerifyError at runtime with --release 9 (and above)

JDK-8323664

java/awt/font/JNICheck/FreeTypeScalerJNICheck.java still fails with JNI warning on some Windows configurations

JDK-8323675

Race in jdk.javadoc-gendata

JDK-8323964

runtime/Thread/ThreadCountLimit.java fails intermittently on AIX

JDK-8324041

ModuleOption.java failed with update release versioning scheme

JDK-8324050

Issue store-store barrier after re-materializing objects during deoptimization

JDK-8324280

RISC-V: Incorrect implementation in VM_Version::parse_satp_mode

JDK-8324347

Enable "maybe-uninitialized" warning for FreeType 2.13.1

JDK-8324598

use mem_unit when working with sysinfo memory and swap related information

JDK-8324637

[aix] Implement support for reporting swap space in jdk.management

JDK-8324647

Invalid test group of lib-test after JDK-8323515

JDK-8324659

GHA: Generic jtreg errors are not reported

JDK-8324753

[AIX] adjust os_posix after JDK-8318696

JDK-8324937

GHA: Avoid multiple test suites per job

JDK-8325074

ZGC fails assert(index == 0 || is_power_of_2(index)) failed: Incorrect load shift: 11

JDK-8325150

(tz) Update Timezone Data to 2024a

JDK-8325203

System.exit(0) kills the launched 3rd party application

JDK-8325213

Flags introduced by configure script are not passed to ADLC build

JDK-8325326

[PPC64] Don’t relocate in case of allocation failure

JDK-8325470

[AIX] use fclose after fopen in read_psinfo

JDK-8325496

Make TrimNativeHeapInterval a product switch

JDK-8325590

Regression in round-tripping UTF-16 strings after JDK-8311906

JDK-8325672

C2: allocate PhaseIdealLoop::_loop_or_ctrl from C→comp_arena()

JDK-8325876

crashes in docker container tests on Linuxppc64le Power8 machines

JDK-8326000

Remove obsolete comments for class sun.security.ssl.SunJSSE

JDK-8326101

[PPC64] Need to bailout cleanly if creation of stubs fails when code cache is out of space

JDK-8326360

Update the Zlib version in open/src/java.base/share/legal/zlib.md to 1.3

JDK-8326638

Crash in PhaseIdealLoop::remix_address_expressions due to unexpected Region instead of Loop

JFX issues

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

Issue IDSummary

JDK-8304008

Update README.md and CONTRIBUTING.md for jfx update repos

JDK-8311492

FontSmoothingType LCD produces wrong color when transparency is used

JDK-8313032

Enhanced handling of Glass

JDK-8313040

Enhanced Font handling

JDK-8313064

General enhancements of image handling

JDK-8313072

Enhanced handling of Fonts

JDK-8314147

Updated the PhongMaterial documentation

JDK-8318614

Update WebKit to 617.1

JDK-8318624

API docs specify incorrect default value for nodeOrientation property

JDK-8320441

Additonal fix for JDK-8313032

JDK-8322236

Build failure after JDK-8313064

JDK-8322703

Intermittent crash in WebView in a JFXPanel from IME calls on macOS

JDK-8323555

Change JavaFX release version to 22.0.1 in jfx22u

JDK-8323879

constructor Path(Path) which takes another Path object fail to draw on canvas html

JDK-8323880

Caret rendered at wrong position in case of a click event on RTL text

JDK-8324233

Update JPEG Image Decoding Software to 9f

JDK-8324326

Update ICU4C to 74.2

JDK-8324337

Cherry-pick WebKit 617.1 stabilization fixes

JDK-8325154

resizeColumnToFitContent is slower than it needs to be

JDK-8325258

Additional WebKit 617.1 fixes from WebKitGTK 2.42.5

JDK-8325550

Grammatical error in AnchorPane.setLeftAnchor (and other setters) javadoc

JDK-8325873

Update JDK_DOCS property to point to JDK 21 docs

JDK-8326989

Text selection issues on WebView after WebKit 617.1

JDK-8327177

macOS: wrong GlobalRef deleted in GlassMenu

JDK-8327979

Change JavaFX release version to 22.0.2 in jfx22u

JDK-8328136

Create release notes for JavaFX 22

JDK-8328749

Remove unused imports in javafx.web

JDK-8328752

Fix missing @Overrides in javafx.web

ON THIS PAGE