RFR (M): JDK-8159262: Walking PackageEntry Export and ModuleEntry Reads Must Occur Only When Neccessary And Wait Until ClassLoader's Aliveness Determined

Zhengyu Gu zgu at redhat.com
Mon Jun 27 16:03:14 UTC 2016


Hi Lois,

I have a question:

classLoaderData.cpp # 1004 - 1013

If there is no class loader unloaded, (for example, _unloading == NULL), 
do you still need to execute this purge loop?

Thanks,

-Zhengyu

On 06/22/2016 10:51 AM, Lois Foltan wrote:
>
> On 6/22/2016 8:56 AM, Alan Bateman wrote:
>>
>>
>> On 22/06/2016 13:51, David Holmes wrote:
>>>
>>> How do you envisage any system classloader "dying" ??
>> The system class loader (be it the built-in application class loader 
>> or a custom system class loader configured via 
>> -Djava.system.class.loader) will/can never be GC'ed. 
>> ClassLoader.getSystemClassLoader() always returns a reference to it 
>> (for example).
> Ahh, ok, I was being overly cautious, so no opportunity to reset the 
> system class loader dynamically at all? 
> SystemDictionary::_java_class_loader is not initialized until after 
> the module system initialization is complete.  Due to this I have 
> updated my webrev to check for either the built-in application class 
> loader or a custom system class loader and have renamed the method to 
> is_system_class_loader().
>
> http://cr.openjdk.java.net/~lfoltan/bug_jdk8159262.1/webrev/
>
> Thanks,
> Lois
>



More information about the hotspot-dev mailing list