Posts

Liberica JDK 8u302, 11.0.12, and 16.0.2 builds are out

Jul 22, 2021
Aleksei Voitylov
8.7

The quarterly release cadence is the best thing that happened to Java™. Once again, it proves its effectiveness, as the three new CPUs of Liberica JDK — 8u302, 11.0.12, and 16.0.2 — eliminate an outstanding amount of issues from the previous releases. Here’s a quick July release overview:

  • 4 security issues fixed:
    • CVE-2021-2388 (CVSS score 7.5),
    • CVE-2021-2369 (CVSS score 4.3),
    • CVE-2021-2432 (CVSS score 3.7),
    • CVE-2021-2341 (CVSS score 3.1);
  • 16 total security fixes;
  • 501 backports and bugs fixed:
    • in Liberica 8u302: 145,
    • in Liberica 11.0.12: 281,
    • in Liberica 16.0.2: 72 + 3 in JFX (2 security fixes and 1 bugfix).

BellSoft engineers are always on the lookout for what our customers need in their projects. Apart from improving the security and performance of our JDK/JRE, today we announce the following new features.

1. Liberica NIK Core

By popular demand, we release a special flavor of the Liberica Native Image Kit compiler: Liberica NIK Core. This package contains Java™ code only (meaning builds of Liberica VM and open source GraalVM Community Edition) with no additional language plugins.

Starting from July 2021, you have two options to convert bytecode into extra-performant native executables and accelerate applications. Liberica NIK Standard remains the best for polyglot JVM-based projects. As for Liberica NIK Core, we consider it optimal for pure Java development — especially with Spring Native1 and the whole Spring ecosystem. It is available for the same range of platforms as the Standard. See the full list of architectures and operating systems on the Supported Configuration page.

2. JDK 8 Lite optimized for size

At long last! Liberica JDK 8u302 is released in the Lite form, just like JDK 11 and 16, further extending the binary package offering. Thanks to this improvement, we also managed to trim down Docker containers.

Compare the binaries for different platforms using the table below. See how much you can save by switching to Lite from Standard.

 JDK StandardJDK Lite
Alpine (apk)97.5448.03
Alpine (tar.gz)99.9049.27
Debian (deb)83.1435.89
CentOS (rpm)88.6440.47
Linux (tar.gz)101.6551.32


JDK 8u302 Standard and Lite binary packages sizes, Mb

The Liberica JDK Alpine musl image continues to be the smallest on the market and produce Java microcontainers. Looking for a way to minimize valuable cloud resources or migrate to microservices? The Lite version of Liberica JDK 8 is worth checking out.

3. Smaller containers with JDK 11 and 16 Lite

This goes without saying: in software development, a reduced size is a good size. Liberica 11.0.12 and 16.0.2 Lite received several optimizations, which has made Docker images even tinier than ever before:

  • Liberica JDK 11.0.12 Alpine Linux musl — 75.82 Mb
  • Liberica JRE 11.0.12 Alpine Linux musl — 44.19 Mb
  • Liberica JDK 11.0.12 java.base — 21.7 Mb!

Fill out the form below, consult with BellSoft expert engineers, and learn how you can apply the smallest Java containers in your project.

Upstream changes: highlights of 11.0.12

1. AArch64 backports

Recent engineering work to improve JDK performance on Arm has been backported to v 11.0.12. This includes 28 backports by BellSoft, which totals at 10% of all backports to the release. Such a high number couldn’t have been achieved without the contribution made by the Red Hat team first to add support2 for and then optimize3 LSE Atomics in C++ code.

Overall, the backporting has led to a 6% performance increase in DaCapo.

2. JNF dependencies removed

JavaNativeFoundation is a framework introduced by Apple to support Java applications that use native methods. It is not a part of macOS but a set of macros and C functions to ensure interoperability with the Cocoa framework: e.g., converting between Java strings and NSStings. Its macros clean up memory after exceptions, rethrow Objective-C exceptions as ones on Java, and deal with Autorelease pools. Previously, using this component wasn’t mandatory but neglecting it may have resulted in illusive errors. However, it is no longer maintained and needed in the JDK.

In this release, JNF dependency is excluded, and the JavaNativeFoundation Framework is no longer bundled with Liberica JDK 11, both on x86_64 and AArch64. The removal will go completely seamless to a Mac user. Just install the new version — no changes are required.

3. G1 backports

The current security release improves G1 performance for applications that produce large numbers of short-living humongous objects. Most of such objects are collected during the young gen collection phase. Therefore, the number of humongous regions that are presented after the last GC, newly allocated since the last GC, or presented after this GC are recorded on each young-only collection cycle.4 These values are used in the adaptive IHOP calculation.5

You can trust BellSoft to listen to the many voices of the OpenJDK community. We are focused on providing our users with handy features, consistently and always on time.

The new builds are ready! Use this link or click the button below to head over to Liberica JDK Download Center.

References

  1. Spring Native on GitHub
  2. [JDK-8263876] AArch64: Support for LSE atomics C++ HotSpot code - Java Bug System
  3. [JDK-8263877] AArch64: Optimize LSE atomics in C++ code - Java Bug System
  4. [JDK-8246274] G1 old gen allocation tracking is not in a separate class - Java Bug System
  5. [JDK-8245511] G1 adaptive IHOP does not account for reclamation of humongous objects by young GC - Java Bug System

Subcribe to our newsletter

figure

Read the industry news, receive solutions to your problems, and find the ways to save money.

Further reading