Eclipse OpenJ9 version 0.17 release notes
These release notes support the Eclipse OpenJ9 0.17 release plan.
Binaries and supported environments
OpenJ9 release 0.17 supports OpenJDK 8, 11, and 13.
Binaries are available at the AdoptOpenJDK project:
All builds are tested against the OpenJ9 functional verification (FV) test suite, the OpenJDK test suites, and additional tests at AdoptOpenJDK.
NOTE: Builds at AdoptOpenJDK are now CUDA-enabled. On systems that have the correct hardware and software pre-requisites, certain processing tasks can be offloaded to a graphics processing unit (GPU). For more information, read the user documentation.
To learn more about support for OpenJ9 releases, including OpenJDK levels and platform support, see Supported environments.
Notable changes in this release
The following table covers notable changes in v0.17. Further information about these changes can be found in the user documentation.
Issue number |
Description |
Version / Platform |
Impact |
#324 #191 |
OpenSSL Digest algorithm is reenabled |
OpenJDK8 and 11 |
Following the resolution of issue [#5611](https://github.com/eclipse-openj9/openj9/issues/5611), the Digest algorithm is reenabled. This algorithm is already supported and enabled on OpenJDK 13. |
#7001 |
New shared classes cache -Xshareclasses:noPersistentDiskSpaceCheck option |
OpenJDK8 and later |
For file systems that do not support the checking of free space, this option causes the VM to skip the disk space check operation that is done before creating a persistent shared classes cache. |
#7149 |
New option -XX:[+|-]ShareUnsafeClasses |
OpenJDK8 and later |
Provides the ability to enable and disable the storing and finding of Unsafe classes in the shared classes cache, which are created with Unsafe.defineClass. This option is enabled by default. |
#7089 |
New option -XX:[+|-]ClassRelationshipVerifier |
OpenJDK8 and later |
Provides the ability to enable and disable the recording and lazy validating of class relationships in the verifier. When enabled, unnecessary class loading is avoided, which can reduce VM startup time. This option is disabled by default and cannot be used with -Xfuture, which is also enabled when the -Xverify:all option is set. |
#7213 |
New experimental -Xshareclasses sub-options for creating layered caches |
OpenJDK8 and later (64-bit only) |
The -Xshareclasses:createLayer and -Xshareclasses:layer= options can be used to
create layered caches, where a cache builds on another cache with the same name. Further options (printTopLayerStats and
destroyAllLayers) are also available for managing layered caches. These options are experimental. |
#5884 |
Support for the IBM z15 processor |
OpenJDK8 and later |
This release adds JIT compiler support for exploiting z15 instructions. |
#7332 |
Change to default value of -Dcom.ibm.enableClassCaching=[true|false] |
OpenJDK8 and later |
In earlier releases the default value for this option was true. The value for this option is now false, disabling LUDCL whilst
[issue 7332](https://github.com/eclipse-openj9/openj9/issues/7332) is investigated.
|
#6822 |
Change to Java dump output for HOOKS |
OpenJDK8 and later |
Output for internal VM event callbacks is changed from milliseconds to microseconds. A new field, 3HKTOTALTIME, provides
the total duration of previous events. Hook data is now reset after each Java dump. |
#7064 |
Restriction removed for analyzing system (core) dumps |
Linux and Windows |
In earlier releases a restriction was in place whereby you had to 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 is now removed. |
None |
Known Issues
The v0.17 release contains the following known issues and limitations:
Issue number |
Description |
Platform |
Impact |
Workaround |
#7549 |
Startup regression on AIX |
AIX (64-bit POWER) |
A 40 - 80% startup regression is under investigation for OpenJDK 8 and 11. |
None |
#479 |
Non-compressed references VM builds not available |
AIX, Linux on Z, Linux on Power |
Non-compressed references VM builds, which support heaps larger than 57GB, are built on Linux on x86, Windows, and macOS. |
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 |
Other changes
A full commit history for this release is available at Eclipse OpenJ9 v0.17.0.