RFR (M): JDK-8159262: Walking PackageEntry Export and ModuleEntry Reads Must Occur Only When Neccessary And Wait Until ClassLoader's Aliveness Determined
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Wed Jun 22 01:31:39 UTC 2016
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