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

Lois Foltan lois.foltan at oracle.com
Wed Jun 22 11:10:55 UTC 2016


Thanks Serguei for the review!
Lois

On 6/21/2016 9:31 PM, serguei.spitsyn at oracle.com wrote:
> Lois,
>
> It looks good.
>
> Thanks,
> Serguei
>
>
> On 6/21/16 10:59, Lois Foltan wrote:
>> Hello,
>>
>> Please review the following fix:
>>
>> Webrev:
>>     http://cr.openjdk.java.net/~lfoltan/bug_jdk8159262/webrev/
>>
>> Bug: Walking PackageEntry Export and ModuleEntry Reads Must Occur 
>> Only When Neccessary And Wait Until ClassLoader's Aliveness Determined
>>     https://bugs.openjdk.java.net/browse/JDK-8159262
>>
>> Summary:
>> In ClassLoaderDataGraph::do_unloading(), the decision to walk each 
>> ClassLoader's PackageEntry exports and ModuleEntry's reads list was 
>> occurring too soon, before the aliveness of all class loaders was 
>> determined.  The walk has been moved to immediately after and only 
>> alive ClassLoader's PackageEntry and ModuleEntry lists are walked.
>>
>> The other piece to this fix is that the lists themselves were being 
>> unnecessarily walked if only modules on any given list were either:
>>     1. defined to the same class loader as either the package being 
>> exported or the module that a read edge was being
>>         established from.  Thus both modules in this equation have 
>> the same life cycle.
>>     2. or defined to one of the three builtin class loaders (boot, 
>> application or platform) which never die
>>
>> Test:
>> - java/io, java/lang/, java/util, all Hotspot jtreg tests, JCK vm & lang
>> - full hotspot nightly RBT run in progress
>



More information about the hotspot-dev mailing list