Don't mask OOMEs in 102-concurrent-gc.

Change-Id: Iccc38d5a7acf72dcca5baa5aade2df739aab3183
diff --git a/test/102-concurrent-gc/src/Main.java b/test/102-concurrent-gc/src/Main.java
index 1a9e88e..f4f697d 100644
--- a/test/102-concurrent-gc/src/Main.java
+++ b/test/102-concurrent-gc/src/Main.java
@@ -25,42 +25,39 @@
     }
 
     public static void main(String[] args) throws Exception {
-        try {
-            ByteContainer[] l = new ByteContainer[buckets];
+        ByteContainer[] l = new ByteContainer[buckets];
 
-            for (int i = 0; i < buckets; ++i) {
-                l[i] = new ByteContainer();
+        for (int i = 0; i < buckets; ++i) {
+            l[i] = new ByteContainer();
+        }
+
+        Random rnd = new Random(123456);
+        for (int i = 0; i < buckets / 256; ++i) {
+            int index = rnd.nextInt(buckets);
+            l[index].bytes = new byte[bufferSize];
+
+            // Try to get GC to run if we can
+            Runtime.getRuntime().gc();
+
+            // Shuffle the array to try cause the lost object problem:
+            // This problem occurs when an object is white, it may be
+            // only referenced from a white or grey object. If the white
+            // object is moved during a CMS to be a black object's field, it
+            // causes the moved object to not get marked. This can result in
+            // heap corruption. A typical way to address this issue is by
+            // having a card table.
+            // This aspect of the test is meant to ensure that card
+            // dirtying works and that we check the marked cards after
+            // marking.
+            // If these operations are not done, a segfault / failed assert
+            // should occur.
+            for (int j = 0; j < l.length; ++j) {
+                int a = l.length - i - 1;
+                int b = rnd.nextInt(a);
+                byte[] temp = l[a].bytes;
+                l[a].bytes = l[b].bytes;
+                l[b].bytes = temp;
             }
-
-            Random rnd = new Random(123456);
-            for (int i = 0; i < buckets / 256; ++i) {
-                int index = rnd.nextInt(buckets);
-                l[index].bytes = new byte[bufferSize];
-
-                // Try to get GC to run if we can
-                Runtime.getRuntime().gc();
-
-                // Shuffle the array to try cause the lost object problem:
-                // This problem occurs when an object is white, it may be
-                // only referenced from a white or grey object. If the white
-                // object is moved during a CMS to be a black object's field, it
-                // causes the moved object to not get marked. This can result in
-                // heap corruption. A typical way to address this issue is by
-                // having a card table.
-                // This aspect of the test is meant to ensure that card
-                // dirtying works and that we check the marked cards after
-                // marking.
-                // If these operations are not done, a segfault / failed assert
-                // should occur.
-                for (int j = 0; j < l.length; ++j) {
-                    int a = l.length - i - 1;
-                    int b = rnd.nextInt(a);
-                    byte[] temp = l[a].bytes;
-                    l[a].bytes = l[b].bytes;
-                    l[b].bytes = temp;
-                }
-            }
-        } catch (OutOfMemoryError e) {
         }
         System.out.println("Test complete");
     }