Liberica JDK 11.0.4 Release Notes

The full version string for this binary release of OpenJDK is 11.0.4+12, and the version number is 11.0.4.

Liberica JDK 11.0.4

Liberica is a certified, Java SE 11-compliant distribution of OpenJDK 11 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, Mac, Linux x86_64, Linux x86 and Linux ARMv7 distributions contain OpenJFX 11.
  • Linux ARMv7 distribution contains Device IO API compiled for Raspberry Pi.

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

Supported Server and Desktop configurations

Liberica is supported on the following OSes:

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

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 GTK2 backend.

Supported Embedded configurations

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

  • Raspbian OS (armhf)
  • OpenSUSE (armv8)

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

Liberica JDK 11 distribution

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

Liberica 11 introduced all new features supported by OpenJDK 11.

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 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 11 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.

Please refer to the following wiki for more information.

Device IO API for the Raspberry Pi

Liberica JDK 11 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
6913047 Long term memory leak when using PKCS11 and JCE exceeds 32 bit process address space
8139178 Wrong fontMetrics when printing in Landscape (OpenJDK)
8163805 hotspot/test/serviceability/sa/sadebugd/ failed with timed out
8170494 JNI exception pending in PlainDatagramSocketImpl.c
8174691 [TESTBUG] A number of native hotspot unit tests fail when executed in stand-alone mode
8179098 Crypto AES/ECB encryption/decryption performance regression (introduced in jdk9b73)
8181143 Introduce diagnostic flag to abort VM on too long VM operations
8188133 C2: Static field accesses in clinit can trigger deoptimizations
8190361 Incorrect version info in jaccessinspector.exe and jaccesswalker.exe
8195793 Remove GTE CyberTrust Global Root
8200286 (testbug) MOptionTest test fails with java.lang.AssertionError: Classfiles too old!
8200613 SA: jstack throws UnmappedAddressException with a CDS core file
8201317 X25519/X448 code improvements
8201633 Problems with AES-GCM native acceleration
8202353 os::readdir should use readdir instead of readdir_r
8202414 Unsafe write after primitive array creation may result in array length change
8202651 Test fails
8202794 Native Unix code should use readdir rather than readdir_r
8202884 SA: Attach/detach might fail on Linux if debugee application create/destroy threads during attaching
8204308 SA: serviceability/sa/TestInstanceKlassSize*.java fails when running in CDS mode
8205432 Replace the placeholder Japanese era name
8205574 Loop predication "assert(f <= 1 && f >= 0) failed Incorrect frequency"
8205611 Improve the wording of LinkageErrors to include module and class loader information
8206955 MethodHandleProxies.asInterfaceInstance does not support default methods
8207340 (fs) UnixNativeDispatcher close and readdir usages should be fixed
8207760 SAXException: Invalid UTF-16 surrogate detected: d83c ?
8208634 Add x-IBM-1129 charset
8208648 ECC Field Arithmetic Enhancements
8208656 Move java/util/Calendar/CalendarTestScripts tests into OpenJDK
8208698 Improved ECC Implementation
8208702 javax/swing/reliability/ may hang on macos
8208996 X11 icon window color handing bug
8209055 c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly
8209414 AArch64: method handle invocation does not respect JVMTI interp_only mode
8209415 Fix JVMTI test failure HS202
8209573 [TESTBUG] gc/epsilon/TestMemoryMXBeans should retry on failure
8209914 javadoc search sometimes generates bad URIs
8209951 Problematic sparc intrinsic: com.sun.crypto.provider.CipherBlockChaining
8210008 custom extension for make/SourceRevision.gmk
8210197 javac can't tell during speculative attribution if a diamond expression is creating an anonymous inner class or not
8210283 Support git as an SCM alternative in the build
8210320 PPC64: Fix uninitialized variable in C1 LIR assembler code
8210457 JVM crash in ResolvedMethodTable::add_method(Handle)
8210483 AssertionError in DeferredAttr at setOverloadKind caused by JDK-8203679
8210519 build/releaseFile/ failed additional sources found
8210633 Cannot parse JapaneseDate string with DateTimeFormatterBuilder Mapped-values
8210739 Calling JSpinner's setFont with null throws NullPointerException
8210782 Upgrade HarfBuzz to the latest 2.3.1
8210803 Compilation failure in codeBlob.cpp for Windows 32-bit
8210837 Add libXrandr-devel to the Linux devkits
8210863 Remove Xrandr include files from JDK sources
8210880 Remove HPKeysym.h from JDK sources
8210886 Remove references in to non-existent files.
8210899 (zipfs) ZipFileSystem.EntryOutputStreamCRC32 mistakenly set the crc32 value into size field
8211266 [TESTBUG] failed intermittently in ZipFSTester.checkRead(): bound must be positive
8211350 Remove jprt support
8211393 Memory leak issue on awt_InputMethod.c
8211435 Exception in thread "AWT-EventQueue-1" java.lang.IllegalArgumentException: null source
8211698 Crash in C2 compiled code during execution of double array heavy processing code
8211810 X11 Time stamp data should be unsigned
8211826 StringIndexOutOfBoundsException happens via GetStringUTFRegion()
8211841 [testbug] sun/nio/cs/OLD/ does not compile (aix)
8211969 test/jdk/lib/security/ searching for wrong paths
8211971 Move security/cacerts/ and security/
8212202 [Windows] Exception if no printers are installed.
8212205 VM asserts after CDS archive has been unmapped
8212328 Exceptional throw cases
8212562 To remove lib/security from test/jdk/TEST.groups
8212676 AWT SystemColor setting on CDE
8212677 X11 default visual support for IM status window on VNC
8212678 Windows IME related patch
8212794 IBM-964 is required for AIX default charset
8212828 (process) Provide a way for Runtime.exec to use posix_spawn on linux
8213015 Inconsistent settings between JFR.configure and -XX:FlightRecorderOptions
8213213 Remove src/java.desktop/unix/classes/sun/awt/X11/keysym2ucs.h
8213292 Input freezes after MacOS key-selector (press&hold) usage on macOS Mojave
8213294 Upgrade IANA LSR data
8213431 Improve file protocol handling
8213432 Better copies of CopiesList
8213515 Improve freetype detection on linux/ppc64/ppc64le/s390x
8213614 DnD operation change feature does not work with 64bit big endian CPU
8213617 JFR should record the PID of the recorded process
8213618 IBM970 charset has missing entry and remove unexpected entries
8213825 assert(false) failed: Non-balanced monitor enter/exit! Likely JNI locking
8213944 Fix AIX build after the removal of Xrandr.h and add a configure check for it
8214002 Cannot use italic font style if the font has embedded bitmap
8214109 XToolkit is not correctly displayed color on 16-bit high color setting
8214111 There is no icon in all JOptionPane target image
8214112 The whole text in target JPasswordField image are not selected
8214252 Expanded & Collapsed nodes of a JTree look the same on GTK3
8214253 Tooltip is transparent rather than having a black background
8214468 jQuery UI upgrade from 1.11.4 to 1.12.1
8214533 IBM-29626C is required for AIX default charset
8214765 All TrayIcon MessageType icons does not show up with gtk3 option set
8214935 Upgrade IANA LSR data
8215026 Incorrect amount of memory unmapped with ImageFileReader::close()
8215123 Crash in runtime image built with jlink --compress=2
8215284 Reduce noise induced by periodic task getFileSize()
8215296 do not disable c99 on Solaris
8215342 [Zero] Build fails after JDK-8200613
8215364 JavaFX crashes on Ubuntu 18.04 with Wayland while using Swing-FX interop
8215374 32-bit build failures after JDK-8181143 (Introduce diagnostic flag to abort VM on too long VM operations)
8215398 -Xlog option usage => Invalid decorator '\temp\app_cds.log'.
8215443 The use of TransportContext.fatal() leads to bad coding style
8215472 (zipfs) Cleanups in implementation classes of jdk.zipfs and tests
8215707 [macosx] fix pthread_getschedparam and pthread_setschedparam calls
8215757 C2: PhaseIdealLoop::create_new_if_for_predicate() computes wrong IDOM
8215790 Delegated task created by SSLEngine throws java.nio.BufferUnderflowException
8216045 The size of key_exchange may be wrong on FFDHE
8216355 missing NULL checks in libnet in interface iteration and potential resource leak in getMacAddress
8216381 More limited privilege usage
8216556 Unnecessary liveness computation with JVMTI
8216577 Add GlobalSign's R6 Root certificate
8216597 SIGBUS in Java_sun_security_pkcs11_wrapper_PKCS11_getNativeKeyInfo after JDK-6913047
8216970 condy causes JVM crash
8217088 Disable JDK-6913047 fix (SunPKCS11 memory leak) after JDK-8216597 (SIGBUS error in getNativeKeyInfo)
8217094 HttpClient SSL race if a socket IOException is raised before ALPN is available
8217263 Automate DashOffset test
8217311 Improve Exception thrown when MulticastSocket.setInterface fails on AIX(Unix)
8217563 Improve realm maintenance
8217564 idempotent protection missing in crc32c.h
8217647 JFR: recordings on 32-bit systems unreadable
8217690 Update public suffix version
8217707 JNICALL declaration breaks Splash screen functions
8217765 Internal Error (javaCalls.cpp:61) guarantee(thread->can_call_java()) failed
8217786 Provide virtualization related info in the hs_error file on linux s390x
8217878 ENVELOPING XML signature no longer works in JDK 11
8217879 hs_err should print more instructions in hex dump
8217880 AIX build issue after JDK-8214533
8218020 Fix version number in 3rd party legal file
8218060 JDK-8217786 breaks build due to remaining unused function
8218063 JDK-8218060 breaks build for S390
8218152 [javac] fails and exits with no error if a bad annotation processor provided
8218469 JSlider display issue with slider for GTKLookAndFeel
8218473 JOptionPane display issue with GTKLookAndFeel
8218479 JTextPane display issue with GTKLookAndFeel
8218618 Program fails when using JDK addressed by UNC path and using Security Manager
8218674 HTML Tooltip with "img=src" on component doesn't show
8218733 SA: CollectedHeap provides broken implementation for used() and capacity()
8218781 Localized names for Japanese era Reiwa in COMPAT provider
8218811 replace open by os::open in hotspot coding
8218854 FontMetrics.getMaxAdvance may be less than the maximum FontMetrics.charWidth
8218863 Better endpoint checks
8218873 Improve JSSE endpoint checking
8218876 Improve PNG support options
8218960 CONFIG level logging statements printed in even when default log Level is INFO
8218991 s390: Add intrinsic for GHASH algorithm
8219006 AArch64: Register corruption in slow subtype check
8219011 Implement MacroAssembler::warn method on AArch64
8219112 name_and_sig_as_C_string usages in frame_s390 miss ResourceMark
8219335 "failed: unexpected type" assert failure in ConnectionGraph::split_unique_types() with unsafe accesses
8219389 Delegated task created by SSLEngine throws BufferUnderflowException
8219414 SA: jhsdb jsnap throws UnmappedAddressException with core generated by gcore
8219448 split-if update_uses accesses stale idom data
8219460 ppc: adjust NativeGeneralJump::insert_unconditional to stack allocated MacroAssembler
8219566 JFR did not collect call stacks when MaxJavaStackTraceDepth is set to zero
8219574 Minimal VM build failure after JDK-8219414
8219582 PPC: Crash after C1 checkcast patched and GC
8219584 Try to dump error file by thread which causes safepoint timeout
8219698 aarch64: SIGILL triggered when specifying unsupported hardware features
8219710 Bump update version for OpenJDK: jdk11.0.4
8219746 Provide virtualization related info in the hs_error file on linux ppc64 / ppc64le
8219775 Certificate validation improvements
8219890 Calendar.getDisplayName() returns empty string for new Japanese Era on some locales
8219915 [TESTBUG] Fix test langtools/tools/javac/processing/model/completionfailure/ in Standalone mode
8219918 ProblemList hotspot tests failing in SAP testing.
8220165 Encryption using GCM results in RuntimeException- input length out of bound
8220166 Performance regression in deserialization (4-6% in SPECjbb)
8220198 Lots of com/sun/crypto/provider/Cipher tests fail on x86_32 due to missing SHA512 stubs
8220281 IBM-858 alias name is missing on IBM00858 charset
8220293 Deadlock in JFR string pool
8220349 The fix done for JDK-8214253 have caused issues in JTree behaviour
8220353 [TESTBUG] TestRegisterRestoring uses SafepointALot without UnlockDiagnosticVMOptions
8220374 C2: LoopStripMining doesn't strip as expected
8220441 [PPC64] Clobber memory effect missing for memory barriers in atomics
8220495 Update GIFlib library to the 5.1.8
8220513 Wrapper Key may get deleted when closing sessions in SunPKCS11 crypto provider
8220517 Enhanced GIF support
8220625 tools/javac/classreader/8171132/ failed with "did not see expected error"
8220707 [TESTBUG] serviceability/sa/ fails with jtreg -vmoption:-Xmx < 8g
8220714 C2 Compilation failure when accessing off-heap memory using Unsafe
8220718 Missing ResourceMark in nmethod::metadata_do
8220781 linux-s390 : os::get_summary_cpu_info gives bad output
8220794 PPC64: Fix signal handler for SIGSEGV on branch to illegal address
8221083 [ppc64] Wrong oop compare in C1-generated code
8221175 Fix bad function case for controlled JVM crash on PPC64 big-endian
8221244 Unexpected behavior of PropertyDescription.getReadMethod for boolean properties
8221263 [TEST_BUG] RemotePrinterStatusRefresh test is hard to use
8221304 Problem list java/awt/FontMetrics/
8221345 Better Poly1305 support
8221400 java/lang/String/ test requests too much heap
8221401 java/math/BigInteger/ test should be disabled on 32-bit platforms
8221412 lookupPrintServices() does not always update the list of Windows remote printers
8221437 assert(java_lang_invoke_ResolvedMethodName::vmtarget(resolved_method()) == m()) failed: Should not change after link resolution
8221470 Print methods in exception messages in java-like Syntax.
8221479 Fix JFR profiling on s390
8221483 fails due to "Multiple garbage collectors selected"
8221518 Normalize normalization
8221535 add steal tick related information to hs_error file [linux]
8221610 Resurrect (legacy) JRE bundle target
8221639 [i386] expand_exec_shield_cs_limit workaround is undefined code after JDK-8199717
8221833 Readability check in Symbol::is_valid not performed for some addresses
8221870 use driver to run CtwRunner in applications/ctw tests
8221880 Better customization for Windows RC properties FileDescription and ProductName
8221915 cleanup ticks related coding in os_perf_aix.cpp [aix]
8221917 serviceability/sa/ fails on 32-bit platforms
8221924 get(null) on single-entry unmodifiable Map returns null instead of throwing NPE
8222027 java/util/logging/LogManager/ generates intermittent ClassCastException
8222032 x86_32 fails with "wrong size of mach node" on AVX-512 machine
8222089 [TESTBUG] sun/security/lib/cacerts/ fails due to cert within 90-day expiry window
8222133 Add temporary exceptions for root certs that are due to expire soon
8222136 Remove two Comodo root CA certificates that are expiring
8222137 Remove T-Systems root CA certificate
8222397 x86_32 tests with UseSHA1Intrinsics SEGV due to garbled registers
8222410 java/nio/file/attribute/BasicFileAttributeView/UnixSocketFile hangs when "nc" does not accept "-U"
8222522 Add configure options for Mac Bundle creation
8222532 (zipfs) Performance regression when writing ZipFileSystem entries in parallel
8222678 Improve TLS negotiation
8222913 Add Jib support for VERSION_EXTRA*
8222930 ConcurrentSkipListMap.clone() shares size variable between original and clone
8223266 PPC64: Check for branch to illegal address before checking for mem serialization
8223395 PPC64: Improve comments in the JVM signal handler to match ISA text
8223499 Remove two DocuSign root certificates that are expiring
8223555 Cleanups in cacerts tests
8223597 jdk/nio/zipfs/ RuntimeException: CHECK_FAILED! (getAttribute.crc failed 6af4413c vs 0 ...)
8223665 SA: debugd options should follow jhsdb style
8224474 harfbuzz 2.3.1 code fails to compile with gcc 4.4.7
8224671 AArch64: mauve System.arraycopy test failure
8224727 Problem list test security/infra/java/security/cert/CertPathValidator/certification/
8224828 aarch64: rflags is not correct after safepoint poll
8224880 AArch64: java/javac error with AllocatePrefetchDistance
8225402 events logging in deoptimization.cpp should go to deopt-log
8225716 G1 GC: Undefined behaviour in G1BlockOffsetTablePart::block_at_or_preceding
8226876 Assertion in sun/util/locale/provider/CalendarDataUtility on Windows after JDK-8218960
8226880 Backport of JDK-8208698 (Improved ECC Implementation) should not bring parts of JDK-8205476 (KeyAgreement#generateSecret is not reset for ECDH based algorithm)
8222066 Change JavaFX release version in 11-dev to 11.0.3
8219539 Cherry pick GTK WebKit 2.22.6 changes
8218611 [DRT] fast/xslt tests fails with Unsupported encoding windows-1251
8213806 WebView - JVM crashes for given HTML
8214185 Upgrade GStreamer to the latest (1.14.4) version
8215799 Complex text is not rendered by webkit on Windows
8215702 SVG gradients are not rendered
8211454 Update SQLite to version 3.26.0
8214452 Update libxml2 to version 2.9.9
8214119 Update to 607.1 version of WebKit
8207772 File API and FileReader should be supported in WebView
8211307 Add prefix to build tools paths
8213541 WebView does not handle HTTP response without ContentType
8209457 [WebView] Canvas.toDataURL with image/jpeg MIME type fails