These release notes support the Eclipse OpenJ9 0.11.0 release plan.
OpenJ9 release 0.11.0 supports OpenJDK 8 and OpenJDK 11. Binaries are available at the AdoptOpenJDK project:
OpenJ9 release 0.11.0 provides limited support for the MacOS platform on OpenJDK 11. Early builds of OpenJDK 11 with OpenJ9 on MacOS are available at the AdoptOpenJDK project at the following link:
All builds are tested against the OpenJ9 functional verification (FV) test suite, the OpenJDK test suites, and additional tests at AdoptOpenJDK.
To learn more about support for OpenJ9 releases, including OpenJDK levels and platform support, see Supported environments.
The following table covers notable changes in v0.11.0. Further information about these changes can be found in the user documentation.
Issue number | Description | Version / Platform | Impact |
---|---|---|---|
#3118 | OpenSSL V1.1.1 support | OpenJDK8 (All platforms) | OpenSSL support is now available for improved cryptographic performance for the CBC, Digest, and GCM algorithms. New command line options are available for disabling or enabling the algorithms. |
#2862 | The default shared cache and cache snapshot directory is changed to the user's home directory | OpenJDK11 (AIX, Linux) | This change is for non-Windows platforms and applies only if `-Xshareclasses:groupAccess` is not used. If `groupAccess` is used, the directory that gets set remains as `/tmp/javasharedresources/`. |
#2862 | Two new `-Xshareclasses` suboptions are introduced | OpenJDK8 and later (All platforms) | `-Xshareclasses:bootClassesOnly` prevents non-bootstrap class loaders caching classes in the shared classes cache. `-Xshareclasses:fatal` prevents the shared classes cache being started if an error occurs. |
#3184 | VM container-awareness is now enabled by default | OpenJDK8 and later (Linux) | In earlier releases, this behavior was enabled by setting the `-XX:+UseContainerSupport` option. This setting is now the default. When the VM is running in a container, and a memory limit is set, the VM allocates more memory to the Java heap. |
#3054 | Concurrent scavenge mode is now available on Linux x86 | OpenJDK8 and later (x86-64: Linux only) | When this mode is enabled, (`-Xgc:concurrentScavenge`) the VM attempts to reduce GC pause-times for response-time sensitive, large heap applications. This mode is available only on compressed references builds. Attempting to use this option on a non-compressed references build results in an *unrecognized option* error message. |
#3062 | New command line option `-XX:[+|-]PositiveIdentityHash` | OpenJDK8 and later (All platforms) | When enabled, identity hash codes (`System.identityHashCode` / `Object.hashCode`) always return non-negative values. Because the performance of identity hash-intensive operations might be impacted, this option is not enabled by default. |
The v0.11.0 release contains the following known issues and limitations:
Issue number | Description | Platform | Impact | Workaround |
---|---|---|---|---|
#378 | DDR support | AIX and macOS | Inability to diagnose problems with the VM, garbage collector, or JIT. | None |
#129 | OpenSSL support | AIX | Bundling OpenSSL on AIX can result in problems like ibmruntimes/openj9-openjdk-jdk8#129. | None |
#54 | Signal handling | All platforms | Currently, shutdown signals (SIGINT , SIGHUP and SIGTERM ) and SIGCONT are fully supported on Unix platforms (pLinux, zLinux, xLinux, AIX, and z/OS). Support for other POSIX signals is pending. See SunMiscSignalTest.java for the list of signals that need to be supported. |
None |
#2507 | Restriction analyzing system (core) dumps | Linux and Windows | You must use a 32-bit JVM to look at a 32-bit core, and a 64-bit JVM to look at a 64-bit core. This restriction will be fixed in a later version of OpenJ9. | None |
#479 | Non-compressed references VM builds not available | AIX, Windows, Linux on Z, Linux on Power | Non-compressed references VM builds, which support heaps larger than 57GB, are built on Linux on x86. | Manual builds on other platforms are possible by following our detailed build instructions. |
#897 | Javadoc not building some OpenJ9 extensions. | All platforms | Some API documentation is missing in the build/<platform>/docs directory. |
None |
#898 | Javadoc building some unsupported OpenJ9 extensions. | All platforms | Some API documentation in build/<platform>/docs is not supported with OpenJ9. |
None |
#17 | OpenJDK with OpenJ9 builds before Java 11 contain extra shared libraries. | All platforms | Shared libraries must not be used in production. | None |
A full commit history for this release is available at Eclipse OpenJ9 v0.11.0.