Liberica JDK
Release Information

Liberica JDK 17.0.3+7 Release Notes


The full version string for this update release is 17.0.3+7. The version number is 17.

Liberica JDK 17.0.3+7

Liberica is a certified, Java SE 17-compliant distribution of OpenJDK 17 which works on server (Linux x86_64, Linux ARM64, Solaris SPARC, Solaris x64, Windows 64), desktop (Windows 64, Windows 32, 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 experimental 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 version is build with musl support.
  • Windows x86_64, Windows x86, Windows ARMv8, Mac, Linux x86_64, Linux x86 and Linux ARMv7 distributions contain OpenJFX 17.
  • Linux ARMv7 distribution contains Device IO API compiled for Raspberry Pi.

Please refer to the Oracle JDK 17.0.3 release notes for further information on JDK 17 features. This document further outlines the peculiarities of Liberica distribution as compared to Oracle JDK 17 distribution.

Supported Server and Desktop configurations

Liberica is supported on the following OSes:

  • Ubuntu Linux 16.04, 18.04, 20.04 (x86, x86_64, ARMv7, ARMv8)
  • Debian Linux 8, 9, 10 (x86, x86_64, ARMv7, ARMv8)
  • Red Hat, Oracle Linux and CentOS 8x, 6.x, 7.x (x86, x86_64, ARMv7, ARMv8)
  • Alpine Linux 3.7+ (x86_64, ARMv8)
  • SUSE Linux Enterprise 12, 15 and tumbleweed (x86_64, ARMv8)
  • Apple macOS 10.11+ (x86_64, ARMv8)
  • Microsoft Windows 2019, Windows 2016, Windows 2012 R2, Windows 10, Windows 8, Windows 7 (x86, x86_64, ARMv8)

It is also known to work on other Linux distributions and Windows versions.

Note: The minimum supported Linux kernel version is 2.6.18 and GLIBC version 2.6. LibericaFX works on all supported Ubuntu versions, Red Hat Linux family starting from 7.x and SUSE versions with GTK3 backend.

Supported Embedded configurations

Liberica is tested and certified on Raspberry Pi 2, 3 and 4 running the following OSes:

  • Raspbian OS (armhf)
  • OpenSUSE (armv8)

It is also known to work with Debian (armhf) and Ubuntu (armhf).

Liberica JDK 17 distribution

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

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

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.

Liberica JDK continues to provide support for AOT and Graal JIT. Since in OpenJDK 17 builds these features are deemed experimental and deprecated, it is recommended to compile native executables with Liberica Native Image Kit to avoid errors.

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 to minimize the footprint, it may be beneficial to use Minimal VM, which emphasises on a minimal footprint. It has C1 JIT compiler only, Serial GC and no serviceability features.

LibericaFX for the Raspberry Pi

Liberica JDK 17 come with a bundled LibericaFX implementation, which is based on OpenJFX. The following tables lists Java FX modules status of Liberica distribution

  • Java FX Graphics - works.
  • Java FX Controls - works.
  • Java FX Media - does not work.
  • Java FX Webkit - does not work.

The following pipelines are known to work: EGL, SW (direct framebuffer) and GTK. By default, Liberica tries to use the accelerated EGL pipeline, which requires the presence of EGL libraries. If they are not found, the implementation falls back to software rendering.

Use the following command line options to specify the rendering pipeline:

  • -Dprism.order=sw forces the use of software rendering pipeline. *
  • -Dprism.order=es2 forces the use of EGL pipeline and hardware acceleration. *
  • -Djavafx.platform=gtk if you would like to launch a LibericaFX application using Liberica from X11.

* Not supported on Raspberry Pi 4.

Please refer to the following wiki for more information.

Device IO API for the Raspberry Pi

Liberica JDK 17 comes with a bundled OpenJDK Device I/O (DIO) API implementation module. DIO provides a Java API for accessing Raspberry PI GPIO pins and for communicating with peripheral devices:

  • General Purpose Input/Output (GPIO).
  • Inter-Integrated Circuit Bus (I2C), Serial Peripheral Interface (SPI).
  • Universal Asynchronous Receiver/Transmitter (UART).

Please refer to the following wiki for more information.

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.

Known Issues

LibericaFX and EGL on Raspbian

As of 2017, the default location of Broadcom libEGL.so and libGLESv2.so has changed in Raspbian OS. If you'd like to leverage hardware EGL acceleration available from Broadcom video drivers in LibericaFX while running a recent Raspbian OS, run the following command:

cd /opt/vc/lib
sudo ln -s libbrcmEGL.so libEGL.so
sudo ln -s libbrcmGLESv2.so libGLESv2.so

Issues fixed

Issue Description
JDK-8281089 JavaFX built with VS2019 and jlinked into JDK 11.x fails to start
JDK-8280490 Change JavaFX release version in jfx17u to 17.0.3
JDK-8278260 JavaFX shared libraries not stripped on Linux or macOS
JDK-8277457 AccessControlException: access denied ("java.net.NetPermission" "getCookieHandler")
JDK-8242544 CMD+ENTER key event crashes the application when invoked on dialog
JDK-8203463 [Accessibility, Narrator] NPE in TableView
JDK-8197991 Selecting many items in a TableView is very slow
JDK-8282099 Cherry-pick WebKit 613.1 stabilization fixes (2)
JDK-8281711 Cherry-pick WebKit 613.1 stabilization fixes
JDK-8281459 WebKit 613.1 build broken on M1
JDK-8278980 Update WebKit to 613.1
JDK-8274221 More definite BER encodings
JDK-8272261 Improve JFR recording file processing
JDK-8272255 Completely handle MIDI files
JDK-8284548 Unexpected StringIndexOutOfBoundsException can occur for invalid XPath expressions after JDK-8270504
JDK-8282397 createTempFile method of java.io.File is failing when called with suffix of spaces character
JDK-8278798 Improve supported intrinsic
JDK-8278356 Improve file creation
JDK-8272594 Better record of recordings
JDK-8269938 Enhance XML processing passes redux
JDK-8284920 Incorrect Token type causes XPath expression to return empty result
JDK-8282300 Throws NamingException instead of InvalidNameException after JDK-8278972
JDK-8281388 Change wrapping of EncryptedPrivateKeyInfo
JDK-8278972 Improve URL supports
JDK-8278805 Enhance BMP image loading
JDK-8278449 Improve keychain support
JDK-8277672 Better invocation handler handling
JDK-8277233 Improve ECDSA signature support
JDK-8277227 Better identification of OIDs
JDK-8275151 Improved Object Identification
JDK-8272588 Enhanced recording parsing
JDK-8270504 Better Xpath expression handling
JDK-8282761 XPathFactoryImpl remove setProperty and getProperty methods
JDK-8277795 ldap connection timeout not honoured under contention
JDK-8276141 XPathFactory set/getProperty method
JDK-8274471 Add support for RSASSA-PSS in OCSP Response
JDK-8282219 jdk/java/lang/ProcessBuilder/Basic.java fails on AIX
JDK-8279669 test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition
JDK-8276841 Add support for Visual Studio 2022
JDK-8272866 java.util.random package summary contains incorrect mixing function in table
JDK-8272996 JNDI DNS provider fails to resolve SRV entries when IPV6 stack is enabled
JDK-8278185 Custom JRE cannot find non-ASCII named module inside
JDK-8281460 Let ObjectMonitor have its own NMT category
JDK-8278163 --with-cacerts-src variable resolved after GenerateCacerts recipe setup
JDK-8277383 VM.metaspace optionally show chunk freelist details
JDK-8271721 Split gc/g1/TestMixedGCLiveThreshold into separate tests
JDK-8277488 Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022
JDK-8270117 Broken jtreg link in "Building the JDK" page
JDK-8279695 [TESTBUG] modify compiler/loopopts/TestSkeletonPredicateNegation.java to run on C1 also
JDK-8278080 Add --with-cacerts-src='user cacerts folder' to enable deterministic cacerts generation
JDK-8277762 Allow configuration of HOTSPOT_BUILD_USER
JDK-8274524 SSLSocket.close() hangs if it is called during the ssl handshake
JDK-8278346 java/nio/file/Files/probeContentType/Basic.java fails on Linux SLES15 machine
JDK-8274171 java/nio/file/Files/probeContentType/Basic.java failed on "Content type" mismatches
JDK-8274562 (fs) UserDefinedFileAttributeView doesn't correctly determine if supported when using OverlayFS
JDK-8273655 content-types.properties files are missing some common types
JDK-8279385 [test] Adjust sun/security/pkcs12/KeytoolOpensslInteropTest.java after 8278344
JDK-8280373 Update Xalan serializer / SystemIDResolver to align with JDK-8270492
JDK-8272541 Incorrect overflow test in Toom-Cook branch of BigInteger multiplication
JDK-8278951 containers/cgroup/PlainRead.java fails on Ubuntu 21.10
JDK-8272600 (test) Use native "sleep" in Basic.java
JDK-8271199 Mutual TLS handshake fails signing client certificate with custom sensitive PKCS11 key
JDK-8277299 STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits
JDK-8281061 [s390] JFR runs into assertions while validating interpreter frames
JDK-8275330 C2: assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions
JDK-8190748 java/text/Format/DateFormat/DateFormatTest.java and NonGregorianFormatTest fail intermittently
JDK-8274750 java/io/File/GetXSpace.java failed: '/dev': 191488 != 190976
JDK-8273387 remove some unreferenced gtk-related functions
JDK-8279702 [macosx] ignore xcodebuild warnings on M1
JDK-8277180 Intrinsify recursive ObjectMonitor locking for C2 x64 and A64
JDK-8277449 compiler/vectorapi/TestLongVectorNeg.java fails with release VMs
JDK-8275643 C2's unaryOp vector intrinsic does not properly handle LongVector.neg
JDK-8271056 C2: "assert(no_dead_loop) failed: dead loop detected" due to cmoving identity
JDK-8275847 Scheduling fails with "too many D-U pinch points" on small method
JDK-8274944 AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info
JDK-8275874 [JVMCI] only support aligned reads in c2v_readFieldValue
JDK-8271506 Add ResourceHashtable support for deleting selected entries
JDK-8278381 [GCC 11] Address::make_raw() does not initialize rspec
JDK-8279124 VM does not handle SIGQUIT during initialization
JDK-8277497 Last column cell in the JTable row is read as empty cell
JDK-8278604 SwingSet2 table demo does not have accessible description set for images
JDK-8278526 [macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column
JDK-8275645 [JVMCI] avoid unaligned volatile reads on AArch64
JDK-8280414 Memory leak in DefaultProxySelector
JDK-8273381 Assert in PtrQueueBufferAllocatorTest.stress_free_list_allocator_vm
JDK-8269616 serviceability/dcmd/framework/VMVersionTest.java fails with Address already in use error
JDK-8280155 [PPC64, s390] frame size checks are not yet correct
JDK-8279924 [PPC64, s390] implement frame::is_interpreted_frame_valid checks
JDK-8280526 x86_32 Math.sqrt performance regression with -XX:UseSSE=
JDK-8279076 C2: Bad AD file when matching SqrtF with UseSSE=0
JDK-8279445 Update JMH devkit to 1.34
JDK-8274753 ZGC: SEGV in MetaspaceShared::link_shared_classes
JDK-8274935 dumptime_table has stale entry
JDK-8251216 Implement MD5 intrinsics on AArch64
JDK-8278241 Implement JVM SpinPause on linux-aarch64
JDK-8275608 runtime/Metaspace/elastic/TestMetaspaceAllocationMT2 too slow
JDK-8276057 Update JMH devkit to 1.33
JDK-8275082 Update XML Security for Java to 2.3.0
JDK-8177814 jdk/editpad is not in jdk TEST.groups
JDK-8253197 vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java fails with "ERROR: DebuggeeSleepingThread: ThreadDeath lost"
JDK-8236505 Mark jdk/editpad/EditPadTest.java as @headful
JDK-8272553 several hotspot runtime/CommandLine tests don't check exit code
JDK-8275687 runtime/CommandLine/PrintTouchedMethods test shouldn't catch RuntimeException
JDK-8278344 sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output
JDK-8273972 Multi-core choke point in CMM engine (LCMSTransform.doTransform)
JDK-8273438 Enable parallelism in vmTestbase/metaspace/stressHierarchy tests
JDK-8278389 SuspendibleThreadSet::_suspend_all should be volatile/atomic
JDK-8273433 Enable parallelism in vmTestbase_nsk_sysdict tests
JDK-8277503 compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java failed with "OnSpinWaitInst with the expected value 'isb' not found."
JDK-8277137 Set OnSpinWaitInst/OnSpinWaitInstCount defaults to "isb"/1 for Arm Neoverse N1
JDK-8273341 Update Siphash to version 1.0
JDK-8269032 Stringdedup tests are failing if the ergonomically select GC does not support it
JDK-8186670 Implement _onSpinWait() intrinsic for AArch64
JDK-8276766 Enable jar and jmod to produce deterministic timestamped content
JDK-8279453 Disable tools/jar/ReproducibleJar.java on 32-bit platforms
JDK-8279998 PPC64 debug builds fail with "untested: RangeCheckStub: predicate_failed_trap_id"
JDK-8280002 jmap -histo may leak stream
JDK-8277069 [REDO] JDK-8276743 Make openjdk build Zip Archive generation "reproducible"
JDK-8279833 Loop optimization issue in String.encodeUTF8_UTF16
JDK-8273277 C2: Move conditional negation into rc_predicate
JDK-8279412 [JVMCI] failed speculations list must outlive any nmethod that refers to it
JDK-8271202 C1: assert(false) failed: live_in set of first block must be empty
JDK-8263567 gtests don't terminate the VM safely
JDK-8269206 A small typo in comment in test/lib/sun/hotspot/WhiteBox.java
JDK-8278309 [windows] use of uninitialized OSThread::_state
JDK-8274506 TestPids.java and TestPidsLimit.java fail with podman run as root
JDK-8276764 Enable deterministic file content ordering for Jar and Jmod
JDK-8273967 gtest os.dll_address_to_function_and_library_name_vm fails on macOS12
JDK-8273366 [testbug] javax/swing/UIDefaults/6302464/bug6302464.java fails on macOS12
JDK-8277846 Implement fast-path for ASCII-compatible CharsetEncoders on ppc64
JDK-8273526 Extend the OSContainer API pids controller with pids.current
JDK-8269849 vmTestbase/gc/gctests/PhantomReference/phantom002/TestDescription.java failed with "OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects"
JDK-8269087 CheckSegmentedCodeCache test fails in an emulated-client VM
JDK-8278871 [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob
JDK-8277447 Hotspot C1 compiler crashes on Kotlin suspend fun with loop
JDK-8279505 Update documentation for RETRY_COUNT and REPEAT_COUNT
JDK-8225559 assertion error at TransTypes.visitApply
JDK-8276654 element-list order is non deterministic
JDK-8279300 [arm32] SIGILL when running GetObjectSizeIntrinsicsTest
JDK-8273682 Upgrade Jline to 3.20.0
JDK-8278758 runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134
JDK-8262134 compiler/uncommontrap/TestDeoptOOM.java failed with "guarantee(false) failed: wrong number of expression stack elements during deopt"
JDK-8269037 jsig/Testjsig.java doesn't have to be restricted to linux only
JDK-8269523 runtime/Safepoint/TestAbortOnVMOperationTimeout.java failed when expecting 'VM operation took too long'
JDK-8244602 Add JTREG_REPEAT_COUNT to repeat execution of a test
JDK-8272398 Update DockerTestUtils.buildJdkDockerImage()
JDK-8278384 Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT
JDK-8278020 ~13% variation in Renaissance-Scrabble
JDK-8279225 [arm32] C1 longs comparison operation destroys argument registers
JDK-8266490 Extend the OSContainer API to support the pids controller of cgroups
JDK-8279379 GHA: Print tests that are in error
JDK-8278987 RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in write_sample_info
JDK-8278627 Shenandoah: TestHeapDump test failed
JDK-8278824 Uneven work distribution when scanning heap roots in G1
JDK-8278239 vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d
JDK-8277919 OldObjectSample event causing bloat in the class constant pool in JFR recording
JDK-8277342 vmTestbase/nsk/stress/strace/strace004.java fails with SIGSEGV in InstanceKlass::jni_id_for
JDK-8278104 C1 should support the compiler directive 'BreakAtExecute'
JDK-8274465 Fix javax/swing/text/ParagraphView/6364882/bug6364882.java failures
JDK-8273933 [TESTBUG] Test must run without preallocated exceptions
JDK-8278172 java/nio/channels/FileChannel/BlockDeviceSize.java should only run on Linux
JDK-8275800 Redefinition leaks MethodData::_extra_data_lock
JDK-8273634 [TEST_BUG] Improve javax/swing/text/ParagraphView/6364882/bug6364882.java
JDK-8239502 [TEST_BUG] Test javax/swing/text/FlowView/6318524/bug6318524.java never fails
JDK-8275326 C2: assert(no_dead_loop) failed: dead loop detected
JDK-8274130 C2: MulNode::Ideal chained transformations may act on wrong nodes
JDK-8279011 JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t
JDK-8276662 Scalability bottleneck in SymbolTable::lookup_common()
JDK-8275536 Add test to check that File::lastModified returns same time stamp as Files.getLastModifiedTime
JDK-8273895 compiler/ciReplay/TestVMNoCompLevel.java fails due to wrong data size with TieredStopAtLevel=2,3
JDK-8272167 AbsPathsInImage.java should skip *.dSYM directories
JDK-8270874 JFrame paint artifacts when dragged from standard monitor to HiDPI monitor
JDK-8275610 C2: Object field load floats above its null check resulting in a segfault
JDK-8278099 two sun/security/pkcs11/Signature tests failed with AssertionError
JDK-8276623 JDK-8275650 accidentally pushed "out" file
JDK-8277328 jdk/jshell/CommandCompletionTest.java failures on Windows
JDK-8277441 CompileQueue::add fails with assert(_last->next() == __null) failed: not last
JDK-8274714 Incorrect verifier protected access error message
JDK-8274658 ISO 4217 Amendment 170 Update
JDK-8274795 AArch64: avoid spilling and restoring r18 in macro assembler
JDK-8277777 [Vector API] assert(r->is_XMMRegister()) failed: must be in x86_32.ad
JDK-8276314 [JVMCI] check alignment of call displacement during code installation
JDK-8265150 AsyncGetCallTrace crashes on ResourceMark
JDK-8276177 nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption failed with "assert(def_ik->is_being_redefined()) failed: should be being redefined to get here"
JDK-8275650 Problemlist java/io/File/createTempFile/SpecialTempFile.java for Windows 11
JDK-8273704 DrawStringWithInfiniteXform.java failed : drawString with InfiniteXform transform takes long time
JDK-8273162 AbstractSplittableWithBrineGenerator does not create a random salt
JDK-8273351 bad tag in jdk.random module-info.java
JDK-8247980 Exclusive execution of java/util/stream tests slows down tier1
JDK-8272327 Shenandoah: Avoid enqueuing duplicate string candidates
JDK-8278115 gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx
JDK-8278116 runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx
JDK-8277992 Add fast jdk_svc subtests to jdk:tier3
JDK-8278016 Add compiler tests to tier
JDK-8277385 Zero: Enable CompactStrings support
JDK-8275586 Zero: Simplify interpreter initialization
JDK-8269175 [macosx-aarch64] wrong CPU speed in hs_err file
JDK-8278822 Bump update version for OpenJDK: jdk-17.0.3
ON THIS PAGE