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 }
|