CAUTION: This site hosts draft documentation for the next release. For published content of the latest release, visit www.eclipse.org/openj9/docs

What's new in version 0.22.0

The following new features and notable changes since v 0.21.0 are included in this release:

Features and changes

Binaries and supported environments

OpenJ9 release 0.22.0 supports OpenJDK 15. Binaries are available from the AdoptOpenJDK community at the following link:

OpenJDK 15 with Eclipse OpenJ9 is not a long term support (LTS) release.

The latest builds of OpenJDK with OpenJ9 for Java 8 and 11 at the AdoptOpenJDK community are for Eclipse OpenJ9 release 0.21.0. Features mentioned in these release notes are not available in these Java 8 and 11 builds. Although it might be possible to build an OpenJDK 8 or OpenJDK 11 with OpenJ9 0.22.0, testing at the project is not complete and therefore support for any of these features is not available.

To learn more about support for OpenJ9 releases, including OpenJDK levels and platform support, see Supported environments.

Performance improvements

The performance of zero initializing Java heap memory improved on the IBM Z® platform because of a change to use memset instead of an outdated handcrafted assembly sequence in the JVM.

New -XX:[+|-]PortableSharedCache option added

On x86 only, the -XX:[+|-]PortableSharedCache option enables you to choose whether AOT code should be generated using an older processor (Intel® Sandybridge) feature set, which therefore allows the AOT code to be portable. This feature is particularly relevant for packaging a shared classes cache into a container image (for example, applications deployed on the cloud in the form of Docker containers) because the processor on which the container image is built is likely to be different from the processor on which the container is deployed. For more information, see -XX:[+|-]PortableSharedCache.

Methods in com.ibm.lang.management.MemoryMXBean deprecated and replaced

The methods com.ibm.lang.management.MemoryMXBean.getGCMasterThreadCpuUsed() and com.ibm.lang.management.MemoryMXBean.getGCSlaveThreadsCpuUsed() are deprecated for removal in Java 16. The recommended methods to be used are com.ibm.lang.management.MemoryMXBean.getGCMainThreadCpuUsed() and com.ibm.lang.management.MemoryMXBean.getGCWorkerThreadsCpuUsed() respectively.

For more information see Java 8: com.ibm.lang.management.MemoryMXBean and for Java 11: com.ibm.lang.management.MemoryMXBean

Start of content that applies to Java 15+ java.lang.System.mapLibraryName() string suffix

On AIX® systems, java.lang.System.mapLibraryName(libname) returns a representation of a native library in a platform-specific string with a .so suffix.

Full release information

To see a complete list of changes between Eclipse OpenJ9 v 0.21.0 and v 0.22.0 releases, see the Release notes.