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