What's new in version 0.44.0
The following new features and notable changes since version 0.43.0 are included in this release:
- Change in behavior of the
-Djava.security.manager
system property for OpenJDK version 8 - DDR field names in
J9BuildFlags
changed - New system property added to prevent the deletion of the Attach API control files within the
/tmp/
folder
Features and changes
Change in behavior of the -Djava.security.manager
system property for OpenJDK version 8
From OpenJDK version 18 onwards, if you enable the SecurityManager
at runtime by calling the System.setSecurityManager()
API, you must set the -Djava.security.manager=allow
option. To disable the SecurityManager
, you must specify the -Djava.security.manager=disallow
option. If an application is designed to run on multiple OpenJDK versions, the same command line might be used across multiple versions. Because of this use of the same command line across multiple versions, in OpenJDK versions before version 18, the runtime attempts to load a SecurityManager
with the class name allow
or disallow
resulted in an error and the application was not starting.
To resolve this issue, OpenJDK version 17 ignores these options and from 0.41.0 release onwards, OpenJDK version 11 also ignores these options. With this release, OpenJDK version 8 too ignores the allow
and disallow
keywords, if specified.
DDR field names in J9BuildFlags
changed
The Direct Dump Reader (DDR) code enables reading system dump data by using the OpenJ9
Diagnostic Tool Framework for Java (DTFJ) API or the jdmpview
tool.
DDR code uses fields of J9BuildFlags
to access build flags in the system dump data.
The names of J9BuildFlags
fields changed over time and therefore, supporting system dumps with different build flags became a challenge.
Earlier, field names in J9BuildFlags
were based on names defined in j9.flags
. Now, when the J9BuildFlags
is generated for each build, the flag names are those names that are specified in j9cfg.h
(derived from j9cfg.h.ftl
or j9cfg.h.in
) instead of the names that are defined in j9.flags
. For example, env_data64
is now referred to as J9VM_ENV_DATA64
.
You can extend the DDR code, adding your own commands, by writing plug-ins. If the user plug-in code contains references to fields of J9BuildFlags
to read the build flags in the system dump data, you must change references to use the names as specified in j9cfg.h
.
New system property added to prevent the deletion of the Attach API control files within the /tmp/
folder
You can use the -Dcom.ibm.tools.attach.fileAccessUpdateTime
system property to prevent Linux® systemd-tmpfiles
from deleting the Attach API control files within the /tmp/
folder. By updating the Attach API control file access times to avoid deletion by systemd-tmpfiles
, the long-running Attach API can continue to use the control files to operate. This system property enables Attach API to update the control file access times at specific intervals.
For more information, see -Dcom.ibm.tools.attach.fileAccessUpdateTime
.