RFR(XS): 8242134: Consolidate the get_package_entry() in SystemDictionaryShared and ClassLoader

Lois Foltan lois.foltan at oracle.com
Tue Apr 7 21:37:05 UTC 2020


Latest webrev looks good Calvin!
Lois

On 4/7/2020 5:06 PM, Calvin Cheung wrote:
> Hi Claes,
>
> Thanks for your review!
>
> On 4/7/20 1:21 PM, Claes Redestad wrote:
>> Hi,
>>
>> one suggestion is that I think we should try to keep the invariant
>> that loader_data can't be NULL in ClassLoader::get_package_entry and
>> avoid adding a NULL check there.
>>
>> The only call site that needs to be fixed appears to be the one in
>> systemDictionaryShared. Maybe something like this:
>>
>>        ClassLoaderData* platform_loader = 
>> ClassLoaderData::class_loader_data_or_null(SystemDictionary::java_platform_loader()); 
>> // can be NULL during bootstrap
>>        if ((platform_loader == NULL ||
>>             ClassLoader::get_package_entry(pkg_name, platform_loader) 
>> == NULL) &&
>>             ClassLoader::get_package_entry(pkg_name, 
>> ClassLoaderData::the_null_class_loader_data()) == NULL) {
>>
>> What do you think?
>
> I've tried your suggestions and it passed all appcds locally on 
> linux-x64.
>
> Updated webrev:
>     http://cr.openjdk.java.net/~ccheung/jdk15/8242134/webrev.01/
>
> thanks,
>
> Calvin
>>
>> /Claes
>>
>> On 2020-04-07 19:39, Calvin Cheung wrote:
>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8242134
>>> webrev: http://cr.openjdk.java.net/~ccheung/jdk15/8242134/webrev.00/
>>>
>>> The above proposed change removes get_package_entry() from 
>>> SystemDictionaryShared.
>>> The ClassLoader::get_package_entry() is being modified slightly so 
>>> that it could be used in SystemDictionaryShared.
>>>
>>> Passed tier 1 - 4 tests.
>>>
>>> thanks,
>>> Calvin



More information about the hotspot-runtime-dev mailing list