On Tue, 8 Apr 2025 11:46:27 GMT, Timofei Pushkin <tpush...@openjdk.org> wrote:
>> src/java.base/share/classes/jdk/internal/misc/CDS.java line 444: >> >>> 442: protected Class<?> findClass(String name) throws >>> ClassNotFoundException { >>> 443: // Unregistered classes should be found in load(...), >>> registered classes should be >>> 444: // handeled by parent loaders >> >> Hmm, I wonder how the reference to java.lang.Object is resolved in this >> case. When `CustomLoadee` is parsed, the ClassFileParser needs to resolve is >> super class, which should result into a call to >> `UnregisteredClassLoader::findClass()`. >> >> >> "java/lang/Object id: 0", >> "CustomLoadee id: 1 super: 0 source: .", > > `UnregisteredClassLoader::loadClass` will be called, i.e. the default > implementation from `ClassLoader::loadClass`, which will first try to > delegate to parent. The delegation chain will reach the boot loader which > will find `java.lang.Object` and thus `UnregisteredClassLoader::findClass()` > won't be called. I think the findClass() method can be deleted as it's identical to the one in URLClassLoader. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24223#discussion_r2033685869