On Sat, 21 May 2022 16:25:57 GMT, Alan Bateman <al...@openjdk.org> wrote:
>> src/jdk.incubator.concurrent/share/classes/jdk/incubator/concurrent/StructuredTaskScope.java >> line 1172: >> >>> 1170: } >>> 1171: }; >>> 1172: return AccessController.doPrivileged(pa); >> >> It might be better to use `MethodHandle`s obtained using >> <code>[jdk.internal.access.SharedSecrets]​.getJavaLangInvokeAccess()</code> >> and <code>[JavaLangInvokeAccess]​.findStatic(…)</code> and >> <code>[JavaLangInvokeAccess]​.findVirtual(…)</code> for this, which >> would avoid going through `AccessController.doPrivilaged(…)`. >> >> [jdk.internal.access.SharedSecrets]: >> https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/jdk/internal/access/SharedSecrets.java >> [JavaLangInvokeAccess]: >> https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/jdk/internal/access/JavaLangInvokeAccess.java > > I'd prefer not export jdk.internal.access to this module, if possible. In > general, it's a lot easier to reason about the security and integrity of the > core platform when java.base doesn't export any of its internal packages. > > In any case, I expect this issue will resolve itself once there is a way for > code in "core" modules to use preview APIs without needing to be compiled > with --enable-preview. The java.management and jdk.incubator.vector modules > have the same issue. Yes, we will add a more general internal for source that participate in preview APIs, and then the use of reflection can be removed. (The Vector API PR has a focused fix to the compiler, since it cannot use the reflection trick). ------------- PR: https://git.openjdk.java.net/jdk/pull/8787