RFR: 8356838: AOT incorrectly sets a cached class's loader type to boot [v2]
Calvin Cheung
ccheung at openjdk.org
Wed May 14 18:34:57 UTC 2025
On Wed, 14 May 2025 18:30:11 GMT, Ioi Lam <iklam at openjdk.org> wrote:
>> When the AOT training run sees a class `X` loaded by a custom class loader, we should set `X`'s loader type to `unreg`. However, since [JDK-8348426](https://bugs.openjdk.org/browse/JDK-8348426), if the classfile for `X` can also be found under the module path, we will incorrectly set the loader type to `boot`. See `test3()` in the new test code.
>>
>> The fix is to check for custom class loaders in `ClassLoader::record_result()` before checking the `classpath_index`.
>>
>> I also cleaned up the code in `ClassLoader::record_result()` and `ClassLoaderExt::record_result_for_builtin_loader()` to reduce redundancy and improve readability.
>>
>> I added `AOTClassLocationConfig::print()` which can be called inside gdb for debugging purposes.
>
> Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:
>
> @calvinccheung comments
Marked as reviewed by ccheung (Reviewer).
-------------
PR Review: https://git.openjdk.org/jdk/pull/25199#pullrequestreview-2841143335
More information about the hotspot-runtime-dev
mailing list