On Fri, 3 Dec 2021 13:05:44 GMT, Alan Bateman <al...@openjdk.org> wrote:
> Deprecate the sun.misc.Unsafe methods that return field offsets. These method > are an impediment to possible future changes. Layout may not be fixed in the > future, the VM should be allowed to re-layout dynamically based on patterns > of usage. We also have the issue of libraries using these methods to get > offsets (sometimes of classes with the same layout as JDK classes) so they > can directly access the fields of privileged classes. It's untenable for > libraries to rely on this going forward. > > The java.lang.invoke.VarHandle API (added in Java 9) provides a strongly > typed reference to a variable that is a safe and a much better alternative to > many cases that use these methods. Deprecating these method provides a gentle > nudge in that directory. Once the Panama memory APIs are permanent then we > can look at terminally deprecating and removing these methods, along with the > accessors. Slowly chipping away... but we are getting really close to being able to deprecate all the unsafe accessor methods. Did you also consider the method `staticFieldBase` and the field `INVALID_FIELD_OFFSET`? I think those could also be included since the aim is to discourage unsafe access to fields of objects. ------------- PR: https://git.openjdk.java.net/jdk/pull/6700