Liberica JDK 18.0.2+10 Release Notes

The full version string for this update release is 18.0.2+10. The version number is 18.

Liberica JDK 18.0.2+10

Liberica is a certified, Java SE 18-compliant distribution of OpenJDK 18 which works on server (Linux x86_64, Linux ARM64, 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 18.
  • Linux ARMv7 distribution contains Device IO API compiled for Raspberry Pi.

Please refer to the Oracle JDK 18.0.2 release notes for further information on JDK 18 features. This document further outlines the peculiarities of Liberica distribution as compared to Oracle JDK 18 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 18 distribution

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

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

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 18 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 18 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 18 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 and 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
sudo ln -s

Issues fixed

Issue Description
JDK-8287175 Backout 8270480: Better path to expressing Xpaths
JDK-8285407 Improve Xalan supports
JDK-8285515 (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4
JDK-8287644 [18u] Backport of JDK-8240903 causes test errors
JDK-8286855 javac error on invalid jar should only print filename
JDK-8282080 Lambda deserialization fails for Object method references on interfaces
JDK-8285517 System.getenv() returns unexpected value if environment variable has non ASCII character
JDK-8287378 GHA: Update cygwin to fix issues in langtools tests on Windows
JDK-8286594 (zipfs) Mention paths with dot elements in ZipException and cleanups
JDK-8286444 javac errors after JDK-8251329 are not helpful enough to find root cause
JDK-8284094 Memory leak in invoker_completeInvokeRequest()
JDK-8287162 (zipfs) Performance regression related to support for POSIX file permissions
JDK-8240903 Add test to check that jmod hashes are reproducible
JDK-8287336 GHA: Workflows break on patch versions
JDK-8287119 Add to ProblemList
JDK-8287202 GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event
JDK-8286029 Add classpath exemption to globals_vectorApiSupport_***
JDK-8285956 (fs) Excessive default poll interval in PollingWatchService
JDK-8282676 Improve subject handling
JDK-8286601 Mac Aarch: Excessive warnings to be ignored for build jdk
JDK-8285523 Improve test java/io/FileOutputStream/
JDK-8283469 Don't use memset to initialize members in FileMapInfo and fix memory leak
JDK-8285921 serviceability/dcmd/jvmti/AttachFailed/ fails on Alpine
JDK-8286283 assert(func2 == 0 && func3 == 0) failed: not unary
JDK-8286013 Incorrect test configurations for compiler/stable/
JDK-8285828 runtime/execstack/ fails with zipped debug symbols
JDK-8284992 Fix misleading Vector API doc for LSHR operator
JDK-8286198 [linux] Fix process-memory information
JDK-8282219 jdk/java/lang/ProcessBuilder/ fails on AIX
JDK-8284848 C2: Compiler blackhole arguments should be treated as globally escaping
JDK-8283022 com/sun/crypto/provider/Cipher/AEAD/ failing with -Xcomp after 8273297
JDK-8284023 java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo
JDK-8280956 Re-examine copyright headers on files in src/java.desktop/macosx/native/libawt_lwawt/awt/a11y
JDK-8285686 Upgrade to FreeType 2.12.0
JDK-8284532 Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler
JDK-8285394 Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id()
JDK-8282170 JVMTI SetBreakpoint metaspace allocation test
JDK-8284549 JFR: FieldTable leaks FieldInfoTable member
JDK-8284620 CodeBuffer may leak _overflow_arena
JDK-8283422 Create a new test for JDK-8254790
JDK-8284458 CodeHeapState::aggregate() leaks blob_name
JDK-8283725 Launching java with "-Xlog:gc*=trace,safepoint*=trace,class*=trace" crashes the JVM
JDK-8284808 change milestone to fcs for releases: jdk-11.0.16, jdk-17.0.4, jdk-18.0.2
JDK-8280476 [macOS] : hotspot arm64 bug exposed by latest clang
JDK-8284622 Update versions of some Github Actions used in JDK workflow
JDK-8282929 Localized monetary symbols are not reflected in `toLocalizedPattern` return value
JDK-8284866 Add test to JDK-8273056
JDK-8282042 [testbug] depends on default encoding
JDK-8284033 Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c
JDK-8285445 cannot open file "NUL:"
JDK-8284920 Incorrect Token type causes XPath expression to return incorrect results
JDK-8284548 Invalid XPath expression causes StringIndexOutOfBoundsException
JDK-8284370 Improve zlib usage
JDK-8283379 Memory leak in FileHeaderHelper
JDK-8284369 TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4
JDK-8284507 GHA: Only check test results if testing was not skipped
JDK-8284389 Improve stability of GHA Pre-submit testing by caching cygwin installer
JDK-8283217 Leak FcObjectSet in getFontConfigLocations() in fontpath.c
JDK-8281638 jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions
JDK-8281318 Improve jfr/event/allocation tests reliability
JDK-8277893 Arraycopy stress tests
JDK-8282194 C1: Missing side effects of dynamic constant linkage
JDK-8281811 assert(_base == Tuple) failed: Not a Tuple after JDK-8280799
JDK-8282045 When loop strip mining fails, safepoints are removed from loop anyway
JDK-8279822 CI: Constant pool entries in error state are not supported
JDK-8283408 Fix a C2 crash when filling arrays with unsafe
JDK-8282590 C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don't process dead nodes
JDK-8283451 C2: assert(_base == Long) failed: Not a Long
JDK-8283187 C2: loop candidate for superword not always unrolled fully if superword fails
JDK-8275337 C1: assert(false) failed: live_in set of first block must be empty
JDK-8282231 x86-32: runtime call to SharedRuntime::ldiv corrupts registers
JDK-8272493 Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2
JDK-8277055 Assert "missing inlining msg" with -XX:+PrintIntrinsics
JDK-8282172 CompileBroker::log_metaspace_failure is called from non-Java/compiler threads
JDK-8282312 Minor corrections to evbroadcasti32x4 intrinsic on x86
JDK-8271055 Crash during deoptimization with "assert(bb->is_reachable()) failed: getting result from unreachable basicblock" with -XX:+VerifyStack
JDK-8279219 [REDO] C2 crash when allocating array of size too large
JDK-8280600 C2: assert(!had_error) failed: bad dominance
JDK-8281544 assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/
JDK-8280901 MethodHandle::linkToNative stub is missing w/ -Xint
JDK-8280867 Cpuid1Ecx feature parsing is incorrect for AMD CPUs
JDK-8283641 Large value for CompileThresholdScaling causes assert
JDK-8282592 C2: assert(false) failed: graph should be schedulable
JDK-8282874 Bad performance on gather/scatter API caused by different IntSpecies of indexMap
JDK-8280799 РЎ2: assert(false) failed: cyclic dependency prevents range check elimination
JDK-8256368 Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers
JDK-8271008 appcds/*/ tests time out because of excessive GC (CodeCache GC Threshold) in loom
JDK-8281822 Test failures on non-DTrace builds due to incomplete DTrace* flags handling
JDK-8281266 [JVMCI] MetaUtil.toInternalName() doesn't handle hidden classes correctly
JDK-8282887 Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows
JDK-8282628 Potential memory leak in sun.font.FontConfigManager.getFontConfig()
JDK-8282551 Properly initialize L32X64MixRandom state
JDK-8281181 Do not use CPU Shares to compute active processor count
JDK-8284012 Correction version-numbers.conf after merge
JDK-8283190 Improve MIDI processing
JDK-8283555 G1: Concurrent mark accesses uninitialized BOT of closed archive regions
JDK-8278381 [GCC 11] Address::make_raw() does not initialize rspec
JDK-8281771 Crash in java_lang_invoke_MethodType::print_signature
JDK-8281274 deal with ActiveProcessorCount in os::Linux::print_container_info
JDK-8278794 Infinite loop in DeflaterOutputStream.finish()
JDK-8278549 UNIX sun/font coding misses SUSE distro detection on recent distro SUSE 15
JDK-8283350 (tz) Update Timezone Data to 2022a
JDK-8281866 Enhance MethodHandle invocations
JDK-8278065 Refactor subclassAudits to use ClassValue
JDK-8280041 Retry loop issues in
JDK-8277072 ObjectStreamClass caches keep ClassLoaders alive
JDK-8282444 Module finder incorrectly assumes default file system path-separator character
JDK-8282583 Update BCEL md to include the copyright notice
JDK-8281859 Improve class compilation
JDK-8281168 Micro-optimize VarForm.getMemberName for interpreter
JDK-8279668 x86: AVX2 versions of vpxor should be asserted
JDK-8272249 Better properties of loaded Properties
JDK-8279958 Provide configure hints for Alpine/apk package managers
JDK-8282225 GHA: Allow one concurrent run per PR only
JDK-8283017 GHA: Workflows break with update release versions
JDK-8281615 Deadlock caused by jdwp agent
JDK-8282295 SymbolPropertyEntry::set_method_type fails with assert
JDK-8283037 Update jdk18u fix version to 18.0.2
JDK-8274524 SSLSocket.close() hangs if it is called during the ssl handshake
JDK-8282397 createTempFile method of is failing when called with suffix of spaces character
JDK-8270480 Better path to expressing Xpaths
JDK-8272243 Improve DER parsing
JDK-8282300 Throws NamingException instead of InvalidNameException after JDK-8278972
JDK-8277608 Address IP Addressing
JDK-8281093 JDK 11.0.14 violates Attribute-Value Normalization in the XML specification 1.0
JDK-8281388 Change wrapping of EncryptedPrivateKeyInfo
JDK-8278356 Improve file creation
JDK-8270504 Better Xpath expression handling
JDK-8272588 Enhanced recording parsing
JDK-8272594 Better record of recordings
JDK-8272261 Improve JFR recording file processing
JDK-8277672 Better invocation handler handling
JDK-8269938 Enhance XML processing passes redux
JDK-8278972 Improve URL supports
JDK-8272255 Completely handle MIDI files
JDK-8280674 Bump version numbers for July CPU
JDK-8282134 Certain regex can cause a JS trap in WebView
JDK-8280841 Update SQLite to 3.37.2
JDK-8286256 Update libxml2 to 2.9.14 8286257: Update libxslt to 1.1.35
JDK-8285475 Create release notes for 18.0.1
JDK-8285181 Change JavaFX release version to 18.0.2 in jfx18 branch
JDK-8283328 Update libxml2 to 2.9.13