Skip to content

CAUTION: This site hosts draft documentation for the next release. For published content of the latest release, visit

What's new in version 0.35.0

The following new features and notable changes since version 0.33.1 are included in this release:

Features and changes

Binaries and supported environments

Eclipse OpenJ9™ release 0.35.0 supports OpenJDK 8, 11, and 17.

OpenJ9 Windows® builds for OpenJDK 11 are now compiled with Microsoft® Visual Studio 2019. The Visual Studio redistributable files included with the build are updated to match.

Apple silicon macOS® is now a fully supported, production-ready target for OpenJDK 11 and later.

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

Java dump files contain more information about waiting threads

For threads that are waiting for a class initialization lock, the Java dump output now shows the thread that is currently working to progress the initialization of the class. This thread is indicated by the new Initializing thread: <thread_name> string in the existing 3XMTHREADBLOCK line in the Java dump output. For example:

3XMTHREADBLOCK Waiting on: java/lang/J9VMInternals$ClassInitializationLock@0x00000000FFF5DC90 Owned by: <unowned> Initializing thread: "Class Initialization Thread 1"

For more information, see Threads.

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

This option controls whether Java dumps show the names of functions in native call stacks.

For more information, see -XX:[+|-]ShowNativeStackSymbols.

New user2 event added for the -Xdump option

On operating systems other than Windows™, you can now use the user2 event for the -Xdump option. This event is triggered when the VM receives the SIGUSR2 signal.

There is a change in the SIGUSR2 signal behavior as well whereby, the process does not exit in response to this signal.

For more information, see -Xdump and Signal handling.

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

This option enables or disables the JIT support for the perf tool without affecting the existing Xjit options.

Since this option creates a file that is used by the Linux® system profiler, perf, it applies only to Linux.

For more information, see -XX:[+|-]PerfTool.

New default options added in the options.default file

-XX:+EnsureHashed:java/lang/Class,java/lang/Thread is added to the list of default options in the options.default file to improve performance.

For more information, see XX:[+|-]EnsureHashed.

New options added to encrypt the JITServer exported metrics

You can use the -XX:JITServerMetricsSSLKey and -XX:JITServerMetricsSSLCert options to encrypt the custom metrics with TLS or SSL.

Start of content that applies to Java 11 and later XL C++ Runtime or later required on AIX

AIX OpenJ9 builds now require version or later of the IBM XL C++ Runtime.

-XX:[+|-]JITServerLocalSyncCompiles enabled by default

The -XX:[+|-]JITServerLocalSyncCompiles option is now enabled in most cases. For more information, see -XX:[+|-]JITServerLocalSyncCompiles.

Start of content that applies to Java 8 Support for changes to the maintenance specifications of JSR 337 in Java 8

OpenJ9 now supports changes to the maintenance specifications in Java 8 as listed in the JSR 337 Maintenance Release 4 document.

These changes include the change in the garbage collector behavior for handling the phantom references in Java 8. The garbage collector handles both the phantom as well as the weak references similarly, which is the current behavior in Java 11 and later. For more information, see Weak reference processing.

Known problems and full release information

To see known problems and a complete list of changes between Eclipse OpenJ9 v0.33.1 and v0.35.0 releases, see the Release notes.