RFR: 8338596: Clarify handling of restricted and caller-sensitive methods
Maurizio Cimadamore
mcimadamore at openjdk.org
Wed Sep 18 15:59:42 UTC 2024
This PR moves the section on restricted methods from the the javadoc of `java.lang.foreign` package into a standalone static [javadoc page](https://cr.openjdk.org/~mcimadamore/jdk/restricted_javadoc_section/docs/api/java.base/java/lang/foreign/doc-files/RestrictedMethods.html).
This is because, after [JEP 472](https://openjdk.org/jeps/472), we now have restricted methods *outside* the foreign package, namely `System::loadLibrary`, `Runtime::loadLibrary` (and related methods). And, even before, we also had a restricted method in `ModuleLayer.Controller`.
The new static page contains some guidance of what happens when a restricted method is called when there's no Java frame on the stack (this can happen e.g. when upcalling into a restricted method from a native thread not known to the JVM) - that is, the call is treated as originating from an unnamed module.
The static page is linked from the restricted method banner in a restricted method javadoc. Here's an [example](https://cr.openjdk.org/~mcimadamore/jdk/restricted_javadoc_section/docs/api/java.base/java/lang/foreign/Linker.html#downcallHandle(java.lang.foreign.MemorySegment,java.lang.foreign.FunctionDescriptor,java.lang.foreign.Linker.Option...)).
-------------
Commit messages:
- Initial push
Changes: https://git.openjdk.org/jdk/pull/21067/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21067&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8338596
Stats: 118 lines in 4 files changed: 76 ins; 40 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/21067.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/21067/head:pull/21067
PR: https://git.openjdk.org/jdk/pull/21067
More information about the core-libs-dev
mailing list