diff --git a/test/jdk/jdk/jfr/event/oldobject/TestClassLoaderLeak.java b/test/jdk/jdk/jfr/event/oldobject/TestClassLoaderLeak.java index 51fd2e045f4e7b063804a8299fd18d2ddd6db428..aa74c63138961ee18c5d2685a9fe120026a102b6 100644 --- a/test/jdk/jdk/jfr/event/oldobject/TestClassLoaderLeak.java +++ b/test/jdk/jdk/jfr/event/oldobject/TestClassLoaderLeak.java @@ -55,11 +55,14 @@ public class TestClassLoaderLeak { r.enable(EventNames.OldObjectSample).withStackTrace().with("cutoff", "infinity"); r.start(); TestClassLoader testClassLoader = new TestClassLoader(); - for (Class<?> clazz : testClassLoader.loadClasses(OldObjects.MIN_SIZE / 20)) { + for (Class<?> clazz : testClassLoader.loadClasses(OldObjects.MIN_SIZE / 200)) { // Allocate array to trigger sampling code path for interpreter / c1 - for (int i = 0; i < 20; i++) { + for (int i = 0; i < 200; i++) { Object classArray = Array.newInstance(clazz, 20); - Array.set(classArray, i, clazz.newInstance()); + // No need to fill whole array + for (int j = 0; j < 5; j++) { + Array.set(classArray, j, clazz.getConstructors()[0].newInstance()); + } classObjects.add(classArray); } } @@ -67,6 +70,7 @@ public class TestClassLoaderLeak { List<RecordedEvent> events = Events.fromRecording(r); Events.hasEvents(events); for (RecordedEvent e : events) { + System.out.println(e); RecordedObject object = e.getValue("object"); RecordedClass rc = object.getValue("type"); if (rc.getName().contains("TestClass")) {