Liberica JDK 11.0.4 for Embedded 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 for Embedded

Liberica is a certified, Java SE 11-compliant distribution of OpenJDK 11 which works on 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.
  • 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 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.0.4 distribution

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