RFR: 8278123: serviceability/dcmd/vm/ClassLoaderStatsTest.java failing with java.lang.AssertionError: Should have a hidden class
Leonid Mesnik
lmesnik at openjdk.java.net
Thu Apr 28 00:52:42 UTC 2022
On Thu, 28 Apr 2022 00:44:18 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:
>> The test failed if GC happens somewhere between
>> Class<?> c = Class.forName("TestClass", true, dummyloader);
>> and
>> OutputAnalyzer output = executor.execute("VM.classloader_stats");
>>
>> The fix is to make hc static as Chris proposed.
>>
>> To verfiy fix I add System.gc() before executor.execute("VM.classloader_stats");
>
> test/hotspot/jtreg/serviceability/dcmd/vm/ClassLoaderStatsTest.java line 178:
>
>> 176: static {
>> 177: try {
>> 178: // Create a hidden class, keep reference in the case if GC happens
>
> "Create a hidden class. Keep a reference in case a GC happens."
>
> I hadn't noticed the original comment when first suggesting making the Class reference static. I wonder what was meant by "non-strong class".
This line added by 8238358: Implementation of JEP 371: Hidden Classes which has many co-authors. Hope someone could provide an explanation during this review.
It might be possible that the goal was to verify that VM.classloader_stats provide might provide info for non-reachable clasees. However it makes test to fragile, since can't block class unloading now.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8438
More information about the serviceability-dev
mailing list