RFR: 8331670: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal

Maurizio Cimadamore mcimadamore at openjdk.org
Wed May 15 10:27:03 UTC 2024


On Fri, 10 May 2024 10:06:55 GMT, Alan Bateman <alanb at openjdk.org> wrote:

> This is the implementation changes for JEP 471.
> 
> The methods in sun.misc.Unsafe for on-heap and off-heap access are deprecated for removal. This means a removal warning at compile time. No methods have been removed. A deprecated message is added to each of the methods but unlikely to be seen as the JDK does not generate or publish the API docs for this class.
> 
> A new command line option --sun-misc-unsafe-memory-access=$value is introduced to allow or deny access to these methods. The default proposed for JDK 23 is "allow" so no change in behavior compared to JDK 22 or previous releases.
> 
> A new test is added to test the command line option settings. The existing micros for FFM that use Unsafe are updated to suppress the removal warning at compile time. A new micro is introduced with a small sample of methods to ensure the changes doesn't cause any perf regressions.
> 
> For now, the changes include the update to the man page for the "java" command. It might be that this has to be separated out so that it goes with other updates in the release.

Looks good. I've left some optional comments.

test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java line 167:

> 165: 
> 166:         @Override
> 167:         @SuppressWarnings("removal")

I believe we already disable a bunch of warnings from the command line when compiling these benchmarks. Perhaps we can just tweak the build script in a similar way and avoid the changes to the sources? E.g.


DISABLED_WARNINGS := restricted this-escape processing rawtypes cast \


Should we add `removal` there?

-------------

Marked as reviewed by mcimadamore (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/19174#pullrequestreview-2057562462
PR Review Comment: https://git.openjdk.org/jdk/pull/19174#discussion_r1601368794


More information about the core-libs-dev mailing list