On Tue, 15 Feb 2022 23:05:30 GMT, Mandy Chung <[email protected]> wrote:
>> Tim Prinzing has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Changes from feedback.
>>
>> - Copyright dates fixed
>> - IllegalCallerException thrown for no caller frame, and associated
>> javadoc changes
>> - test changed to look for IllegalCallerException thrown.
>
> src/java.base/share/classes/java/lang/ClassLoader.java line 1626:
>
>> 1624: protected static boolean registerAsParallelCapable() {
>> 1625: final Class<?> caller = Reflection.getCallerClass();
>> 1626: if (caller == null) {
>
> Suggestion:
>
> if (caller == null || !ClassLoader.class.isAssignableFrom(caller)) {
> throw new IllegalCallerException(caller + " not a subclass of
> ClassLoader");
> }
>
>
> What we suggested is to throw IllegalCallerException if the caller is not a
> class loader and that will include null caller case.
This also needs a test case for non-class loader caller.
I looked at the existing tests testing `registerAsParallelCapable` but I can't
find a good one to add the new test case. The closest one could be
`test/jdk/java/lang/ClassLoader/IsParallelCapable.java`. I'm okay to include
a new test case in `IsParallelCapable.java` to verify `IllegalCallerException`
if called by a non-class loader.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7448