RFR(S): 8166931: Do not include classes which are unusable during run time in the classlist file
Calvin Cheung
calvin.cheung at oracle.com
Tue Oct 11 17:43:51 UTC 2016
On 10/11/16, 10:33 AM, Lois Foltan wrote:
>
> On 10/11/2016 1:19 PM, Calvin Cheung wrote:
>> Hi Lois,
>>
>> Thanks for your review.
>>
>> On 10/11/16, 4:38 AM, Lois Foltan wrote:
>>>
>>> On 10/10/2016 11:59 PM, Calvin Cheung wrote:
>>>>
>>>> Please review this small fix for not including classes in the
>>>> classlist file which are unusable during run time.
>>>>
>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8166931
>>>>
>>>> webrev: http://cr.openjdk.java.net/~ccheung/8166931/webrev.00/
>>>
>>> Hi Calvin,
>>>
>>> src/share/vm/classfile/classFileParser.cpp
>>> - line #5781, I find the if statement logic to be somewhat
>>> confusing. This check seems to be only for classes defined to the
>>> boot and platform class loader. I am assuming it does not apply to
>>> the application class loader because there is no way to
>>> differentiate a class defined to the application class loader from
>>> being on the --patch-module list and the -classpath? Is that why
>>> the if statement logic does not include the application class loader?
>> Yes. We do want to include the classes defined to the app class loader.
> Even if those classes defined to the app class loader are located in
> --patch-module entries?
Yes. With the fix for JDK-8164011, we currently don't archive any
classes found in the --patch-module entries.
thanks,
Calvin
>
>>> Maybe it is enough to improve the comment to something like:
>>>
>>> // For the boot and platform class loaders, check if the class is
>>> not found in the java runtime image
>>> // or the boot loader's appended entries. This indicates that the
>>> class must be located on the --patch-module list and
>>> // is not useable during run time, so should be skipped.
>> I've modified it a little. How about the following?
>> // For the boot and platform class loaders, check if the class is not
>> found in the java runtime image.
>> // Additional check for the boot class loader is if the class is not
>> found in the boot loader’s appended
>> // entries. This indicates that the class is not useable during run
>> time, such as the ones found in the
>> // —patch-module entries, so it should not be included in the
>> classlist file.
> Looks good, thanks for rewording!
>
>>
>>>
>>> Then please indent the start of line #5782 by one space to show that
>>> the check for the platform class loader is part of that first ||
>>> expression.
>> I'll fix it.
>>>
>>> test/runtime/modules/PatchModule/PatchModuleClassList.java
>>> - good test!
>> Let me know if you want to see another webrev.
>
> No, I'm all set.
> Thanks,
> Lois
>
>>
>> thanks,
>> Calvin
>>>
>>> Thanks,
>>> Lois
>>>
>>>>
>>>> Testing:
>>>> JPRT with -testset hotspot
>>>> jtreg tests under hotspot/runtime on all supported platforms
>>>> (in progress)
>>>>
>>>> thanks,
>>>> Calvin
>>>
>
More information about the hotspot-runtime-dev
mailing list