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