< prev index next >

test/hotspot/jtreg/gc/g1/humongousObjects/TestHumongousClassLoader.java

Print this page
rev 59757 : Add whitebox support for deflating idle monitors including ObjectSynchronizer::request_deflate_idle_monitors(); drop ObjectSynchronizer::_is_special_deflation_requested flag, functions and uses; switch to ObjectSynchronizer::request_deflate_idle_monitors() as needed; _last_async_deflation_time_ns should be set at the end of async deflation;


 186                 G1SampleClass.ONE_REGION_HUMONGOUS.getCls(humongousClassLoader, wrkDir, SAMPLE_CLASS_NAME_PREFIX)
 187                         .newInstance(),
 188                 G1SampleClass.TWO_REGION_HUMONGOUS.getCls(humongousClassLoader, wrkDir, SAMPLE_CLASS_NAME_PREFIX)
 189                         .newInstance(),
 190         };
 191 
 192         // forgetting references to loaded classes
 193         for (int i = 0; i < loadedClasses.length; ++i) {
 194             loadedClasses[i] = null;
 195         }
 196 
 197         // forgetting referencies to classloaders
 198         humongousClassLoader = null;
 199         humongousClassLoaderClass = null;
 200 
 201         simpleClassLoader = null;
 202         simpleClassLoaderClass = null;
 203 
 204         gc.provoke();
 205 




 206         // Test checks
 207         Asserts.assertEquals(WB.isClassAlive(HUMONGOUS_CLASSLOADER_NAME), false,
 208                 String.format("Classloader class %s is loaded after we forget all references to it",
 209                         HUMONGOUS_CLASSLOADER_NAME));
 210 
 211         for (G1SampleClass sampleClass : G1SampleClass.values()) {
 212             String className = Helpers.enumNameToClassName(sampleClass.name()) + "Class";
 213             Asserts.assertEquals(WB.isClassAlive(className), false,
 214                     String.format("Class %s is loaded after we forget all references to it", className));
 215         }
 216     }
 217 
 218 }


 186                 G1SampleClass.ONE_REGION_HUMONGOUS.getCls(humongousClassLoader, wrkDir, SAMPLE_CLASS_NAME_PREFIX)
 187                         .newInstance(),
 188                 G1SampleClass.TWO_REGION_HUMONGOUS.getCls(humongousClassLoader, wrkDir, SAMPLE_CLASS_NAME_PREFIX)
 189                         .newInstance(),
 190         };
 191 
 192         // forgetting references to loaded classes
 193         for (int i = 0; i < loadedClasses.length; ++i) {
 194             loadedClasses[i] = null;
 195         }
 196 
 197         // forgetting referencies to classloaders
 198         humongousClassLoader = null;
 199         humongousClassLoaderClass = null;
 200 
 201         simpleClassLoader = null;
 202         simpleClassLoaderClass = null;
 203 
 204         gc.provoke();
 205 
 206         boolean did_deflation = WB.deflateIdleMonitors();
 207         Asserts.assertEQ(did_deflation, true,
 208                          "deflateIdleMonitors() should have worked.");
 209 
 210         // Test checks
 211         Asserts.assertEquals(WB.isClassAlive(HUMONGOUS_CLASSLOADER_NAME), false,
 212                 String.format("Classloader class %s is loaded after we forget all references to it",
 213                         HUMONGOUS_CLASSLOADER_NAME));
 214 
 215         for (G1SampleClass sampleClass : G1SampleClass.values()) {
 216             String className = Helpers.enumNameToClassName(sampleClass.name()) + "Class";
 217             Asserts.assertEquals(WB.isClassAlive(className), false,
 218                     String.format("Class %s is loaded after we forget all references to it", className));
 219         }
 220     }
 221 
 222 }
< prev index next >