RFR 6656031: SA: jmap -permstat number of classes is off by 1

Dmitry Samersoff dmitry.samersoff at oracle.com
Thu Dec 19 12:14:11 PST 2013


Jaroslav,

Changes looks good for me, but

I would prefer to re-order if at ll. 112 like:


LoaderData ld = bootstrapLoaderData;
Oop loader = ((InstanceKlass) k).getClassLoader();
if (loader != Null){
 ld = loaderMap.get(loader)
}

-Dmitry

On 2013-12-17 15:54, Jaroslav Bachorik wrote:
> Please, review the following fix.
> 
> Issue : https://bugs.openjdk.java.net/browse/JDK-6656031
> Webrev: http://cr.openjdk.java.net/~jbachorik/6656031/webrev.00
> 
> The issue is caused by using SystemDictionary.ClassAndLoaderVisitor to
> traverse the dictionary classes to get the numbers of the loaded classes
> per classloader. This visitor will visit all the combinations of a
> particular class and all its classloaders - the defining CL + all
> initiating CLs. This will cause completely wrong numbers to be reported.
> 
> The solution is to use SystemDictionary.ClassVisitor which walks only
> over the loaded classes (each class exactly once) and extract the
> defining CL from the visited Klass.
> 
> Thanks,
> 
> -JB-


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.


More information about the serviceability-dev mailing list