Make finalization test more robust
Moved some logic to its own function to prevent vregs keeping objects
live. Not sure if it fixes flaky test, can't reproduce.
Bug: 17932313
Change-Id: Ib9c70d954a9692d6529f6ac645c9d0e9f596e502
diff --git a/test/036-finalizer/src/Main.java b/test/036-finalizer/src/Main.java
index 390472d..4ebbdc5 100644
--- a/test/036-finalizer/src/Main.java
+++ b/test/036-finalizer/src/Main.java
@@ -141,16 +141,17 @@
}
}
- private static void runFinalizationTest() {
- int count = 1024;
+ private static void allocFinalizableObjects(int count) {
Object[] objs = new Object[count];
for (int i = 0; i < count; ++i) {
objs[i] = new FinalizeCounter(i);
}
- for (int i = 0; i < count; ++i) {
- objs[i] = null;
- }
- System.gc();
+ }
+
+ private static void runFinalizationTest() {
+ int count = 1024;
+ allocFinalizableObjects(count);
+ Runtime.getRuntime().gc();
System.runFinalization();
System.out.println("Finalized " + FinalizeCounter.getCount() + " / " + count);
}