Liberica JDK 13.0.1 Release Notes

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

Liberica JDK 13.0.1

Liberica is a certified, Java SE 13.0.1-compliant distribution of OpenJDK 13 which works on server (Linux x86_64, Linux ARM64, Windows 64), desktop (Windows 64, Windows 32, Mac, Linux x86_64, Linux x86), and embedded devices (Linux x86, Linux ARM64, Linux ARMv7, including Raspberry Pi 2 & 3 (ARMv6 hardfloat). It has the following notable additions:

  • Linux & Windows x86_64 binaries contain experimental support for Shenandoah GC, 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 and Linux ARMv7 distributions contain OpenJFX 13.
  • 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 13 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 7.x (x86, x86_64, ARMv8)
  • Alpine Linux 3.7+
  • SUSE Linux Enterprise 12, 15 and tumbleweed (x86_64, ARMv8)
  • Apple macOS 10.11+
  • 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 GTK3 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 13.0.1 distribution

Liberica JDK 13.0.1 is distributed as .msi, .zip, .deb, .rpm 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 13.0.1.

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