Liberica JDK 13.0.1 for Embedded Release Notes

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

Liberica JDK 13.0.1 for Embedded

Liberica is a certified, Java SE 13.0.1-compliant distribution of OpenJDK 13.0.1 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 13.0.1 release notes for further information on JDK 13.0.1 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 13.0.1 distribution

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

Liberica 13.0.1 introduced all new features supported by OpenJDK

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 13.0.1 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 13.0.1 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-8185898 setRequestProperty(key, null) results in HTTP header without colon in request
JDK-8191521 handle long relative path specified in -Xbootclasspath/a on windows
JDK-8209790 SA tools not providing option to connect to debug server
JDK-8209901 Canonical file handling
JDK-8212328 Exceptional throw cases
JDK-8212970 TZ database in "vanguard" format support
JDK-8213429 Windows file handling redux
JDK-8213431 Improve file protocol handling
JDK-8213432 Better copies of CopiesList
JDK-8215367 Better Collection of References
JDK-8216381 More limited privilege usage
JDK-8217563 Improve realm maintenance
JDK-8217676 Upgrade libpng to 1.6.37
JDK-8218573 Better socket support
JDK-8218863 Better endpoint checks
JDK-8218873 Improve JSSE endpoint checking
JDK-8218876 Improve PNG support options
JDK-8218877 Help transform transformers
JDK-8219082 jdk/jfr/event/runtime/ failed in validateStackTrace()
JDK-8219775 Certificate validation improvements
JDK-8220186 Improve use of font temporary files
JDK-8220302 Better Kerberos ccache handling
JDK-8220517 Enhanced GIF support
JDK-8221345 Better Poly1305 support
JDK-8221497 Optional Panes in Swing
JDK-8221518 Normalize normalization
JDK-8221858 Build Better Processes
JDK-8222108 Reduce minRefreshTime for updating remote printer list on Windows
JDK-8222678 Improve TLS negotiation
JDK-8222684 Better support for patterns
JDK-8222690 Better Glyph Images
JDK-8222751 closed/test/jdk/sun/security/util/DerIndefLenConverter/ fail
JDK-8222968 ByteArrayPublisher is not thread-safe resulting in broken re-use of HttpRequests
JDK-8223326 Regression introduced by CPU sync: access denied ("" "setSocketImpl")
JDK-8223505 Better pattern compilation
JDK-8223518 Unexpected exception in jjs
JDK-8223869 Problem list java/awt/FontMetrics/ on more platforms
JDK-8223886 Add in font table referene
JDK-8223892 Improved handling of jar files
JDK-8224025 Fix for JDK-8220302 is not complete
JDK-8224062 Improve String index handling
JDK-8224505 TestQuotedLogOutput failure after ProcessBuilder changes
JDK-8224532 Better Path supports
JDK-8224915 Better serial attributes
JDK-8225286 Better rendering of native glyphs
JDK-8225292 Better Graphics2D drawing
JDK-8225298 Improve TLS connection support
JDK-8225425 java.lang.UnsatisfiedLinkError: net.dll: Can't find dependent libraries
JDK-8225505 ctrl-F1 does not show the tooltip of a menu item (JMenuItems)
JDK-8225597 Enhance font glyph mapping
JDK-8226530 ZipFile reads wrong entry size from ZIP64 entries
JDK-8226543 Reduce GC pressure during message digest calculations in password-based encryption
JDK-8226765 Commentary on Javadoc comments
JDK-8227171 provide function names in native stack trace on aix with xlc16
JDK-8227201 Bump version string for 13.0.1
JDK-8227230 Backout JDK-8215367 from update releases
JDK-8227435 Perf::attach() should not throw a java.lang.Exception
JDK-8227594 sadebugd/ fails due to "java.rmi.NotBoundException: SARemoteDebugger"
JDK-8227601 Better collection of references
JDK-8227662 freetype seeks to index at the end of the font data
JDK-8227757 Add 'ga' mercurial tags to the CPU19_10 source forests
JDK-8228649 [PPC64] SA reads wrong slots from interpreter frames
JDK-8228711 Path rendered incorrectly when it goes outside the clipping region
JDK-8228825 Enhance ECDSA operations
JDK-8229002 Shenandoah: Missing node types in ShenandoahLoadReferenceBarrier::needs_barrier_impl()
JDK-8229118 [TESTBUG] serviceability/sa/ClhsdbFindPC fails on AArch64
JDK-8229182 runtime/containers/docker/ test fails on SLES12
JDK-8229242 JDK 13.0.1 L10n resource files update msgdrop 10
JDK-8229284 jdk/internal/platform/cgroup/ fails for - memory:getMemoryUsage
JDK-8229706 java/net/MulticastSocket/ fails on some AIX machines
JDK-8229773 Resolve permissions for code source URLs lazily
JDK-8229800 WindowsServerCore 1809 does not provide d2d1.dll library required by awt.dll
JDK-8229872 (fs) Increase buffer size used with getmntent
JDK-8229887 (zipfs) zip file corruption when replacing an existing STORED entry
JDK-8229925 [s390, PPC64] Exception check missing in interpreter
JDK-8230110 TestLinkageErrorInGenerateOopMap times out
JDK-8230115 Problemlist JFR TestNetworkUtilization test
JDK-8230303 JDB hangs when running monitor command
JDK-8230425 Shenandoah forces +UseNUMAInterleaving even after explicitly disabled
JDK-8230565 ZGC: Redesign C2 load barrier to expand on the MachNode level
JDK-8230646 Epsilon does not extend TLABs to max size
JDK-8230666 Exclude serviceability/sa/ on linuxppc64 and linuxppc64le
JDK-8230728 Thin stroked shapes are not rendered if affine transform has flip bit
JDK-8230782 Robot.createScreenCapture() fails if “awt.robot.gtk” is set to false
JDK-8230850 Test sun/tools/jcmd/ fails intermittently
JDK-8230943 False deadlock detection with -XX:+CIPrintCompileQueue after JDK-8163511
JDK-8231098 (tz) Upgrade time-zone data to tzdata2019c
JDK-8231197 Shenandoah: JVMTI heap walking cleanup crashes with NULL forwardee
JDK-8231405 [Shenandoah] guarantee(d != NULL) failed: Null dominator info
JDK-8231583 Shenandoah: Fix register clash in SBSA::resolve_forwarding_pointer() borrowing
JDK-8231770 Test java/util/zip/ fails with -Xcheck:jni
JDK-8231887 fails because certificate was revoked
JDK-8227402 Improve XSLT processing