Hi Joe,

Looks fine,  Roger


On 12/04/2015 01:31 PM, joe darcy wrote:
Hello,

Please review the patch below to address

JDK-8144742: Instrument intermittently failing test GCDuringIteration.java

In brief, after GCDuringIteration.java was un-@ignored recently, it has been seen to fail intermittently in some of our testing. As the test uses randomness, to help the investigation GCDuringIteration.java should be switched over to the standard random number generator which prints out the seed and allows the seed to be set.

Also, the test is marked as being known to intermittently fail and for that reason, is bumped from tier 1 to tier 2.

Thanks,

-Joe

diff -r 8ef2bf79539c test/TEST.groups
--- a/test/TEST.groups    Thu Dec 03 13:18:51 2015 -0800
+++ b/test/TEST.groups    Fri Dec 04 10:30:58 2015 -0800
@@ -30,6 +30,7 @@
     -java/lang/ProcessHandle/TreeTest.java \
     -java/util/zip/TestLocalTime.java \
     :jdk_util \
+    -java/util/WeakHashMap/GCDuringIteration.java \
     -java/util/concurrent/Phaser/Basic.java \
     sun/nio/cs/ISO8859x.java \
     java/nio/Buffer \
@@ -40,6 +41,7 @@
     java/lang/ProcessHandle/TreeTest.java \
     java/util/zip/TestLocalTime.java \
     java/util/concurrent/Phaser/Basic.java \
+    java/util/WeakHashMap/GCDuringIteration.java \
     :jdk_io \
     :jdk_nio \
     -sun/nio/cs/ISO8859x.java \
diff -r 8ef2bf79539c test/java/util/WeakHashMap/GCDuringIteration.java
--- a/test/java/util/WeakHashMap/GCDuringIteration.java Thu Dec 03 13:18:51 2015 -0800 +++ b/test/java/util/WeakHashMap/GCDuringIteration.java Fri Dec 04 10:30:58 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,13 +24,17 @@
 /*
  * @test
  * @bug 6499848
+ * @library /lib/testlibrary/
+ * @build jdk.testlibrary.RandomFactory
+ * @run main GCDuringIteration
  * @summary Check that iterators work properly in the presence of
  *          concurrent finalization and removal of elements.
- * @key randomness
+ * @key randomness intermittent
  */

 import java.util.*;
 import java.util.concurrent.CountDownLatch;
+import jdk.testlibrary.RandomFactory;

 public class GCDuringIteration {
     private static void waitForFinalizersToRun() {
@@ -65,8 +69,9 @@
         equal(map.values().iterator().next(), v);
     }

+    static final Random rnd = RandomFactory.getRandom();
+
void checkIterator(final Iterator<Map.Entry<Foo, Integer>> it, int first) {
-        final Random rnd = new Random();
         for (int i = first; i >= 0; --i) {
             if (rnd.nextBoolean()) check(it.hasNext());
             equal(it.next().getValue(), i);
@@ -86,7 +91,7 @@
         final int n = 10;
         // Create array of strong refs
         final Foo[] foos = new Foo[2*n];
- final Map<Foo,Integer> map = new WeakHashMap<Foo,Integer>(foos.length);
+        final Map<Foo,Integer> map = new WeakHashMap<>(foos.length);
         check(map.isEmpty());
         equal(map.size(), 0);



Reply via email to