On Mon, 11 Apr 2022 07:12:09 GMT, Alan Bateman <[email protected]> wrote:
>> src/java.base/share/classes/jdk/internal/misc/StructureViolationExceptions.java
>> line 81:
>>
>>> 79: Constructor<?> ctor;
>>> 80: try {
>>> 81: Class<?> exClass =
>>> Class.forName("jdk.incubator.concurrent.StructureViolationException");
>>
>> Should this not be `jdk.internal.misc`? (Also, if this is the case, maybe
>> there's a test missing that could have discovered this...)
>
>> Should this not be `jdk.internal.misc`? (Also, if this is the case, maybe
>> there's a test missing that could have discovered this...)
>
> The exception is in an incubator module, it's just that code in java.base
> can't statically reference it.
Maybe it should use a `MethodHandle` fetched using `IMPL_LOOKUP` instead, in
order to avoid the runtime overhead of going through `CallerSensitive` methods
(`Class.forName` and `Constructor.newInstance`).
It should probably also be cached.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8166