Preload attribute

John Rose john.r.rose at oracle.com
Sat Jun 10 01:41:09 UTC 2023


On 9 Jun 2023, at 8:32, Dan Heidinga wrote:

> On Thu, Jun 8, 2023 at 2:47 PM Frederic Parain <frederic.parain at oracle.com>
> wrote:
>
>> Hi Dan,
>>
>> I've looked at your exploration of the Preload attribute. The LoaderTest
>> test loads class A but it doesn't link it. HotSpot looks at the PreLoad
>> attribute at class link time, not class load time (yes, the name is
>> misleading), this is why class B is not loaded.
>>
>
> Thanks Fred.  I knew I had to be doing something wrong as I couldn't find
> anything in the jdk that would have accounted for it.
>
> Interestingly, I missed this in part due to a behaviour difference between
> OpenJ9 and Hotspot - by the time OpenJ9 returns a j.l.Class instance, the
> vtables have been built and method sendTargets have been set.  It appears
> Hotspot initializes the vtable in a separate pass.

This is an example of how it will be hard to specify Preload, if it is not just a pure optimization, since the existing JVMS allows latitude for different implementations to sequence class loading different, in subtle ways.


More information about the valhalla-spec-observers mailing list