Random failure, and some warnings.
1.1 --- a/openide.util/test/unit/src/org/openide/util/WeakSetTest.java Mon Dec 08 13:50:38 2008 -0500
1.2 +++ b/openide.util/test/unit/src/org/openide/util/WeakSetTest.java Fri Dec 19 10:24:30 2008 -0500
1.3 @@ -41,6 +41,7 @@
1.4
1.5 package org.openide.util;
1.6
1.7 +import java.lang.ref.Reference;
1.8 import java.lang.ref.WeakReference;
1.9 import java.util.ArrayList;
1.10 import java.util.Iterator;
1.11 @@ -48,19 +49,15 @@
1.12 import java.util.Set;
1.13 import java.util.concurrent.ExecutorService;
1.14 import java.util.concurrent.Executors;
1.15 -import junit.framework.*;
1.16 -import org.netbeans.junit.*;
1.17 +import org.netbeans.junit.NbTestCase;
1.18 +import org.netbeans.junit.RandomlyFails;
1.19
1.20 public class WeakSetTest extends NbTestCase {
1.21
1.22 - public WeakSetTest(java.lang.String testName) {
1.23 + public WeakSetTest(String testName) {
1.24 super(testName);
1.25 }
1.26
1.27 - public static void main(java.lang.String[] args) {
1.28 - junit.textui.TestRunner.run(new NbTestSuite(WeakSetTest.class));
1.29 - }
1.30 -
1.31 public void testToArrayMayContainNullsIssue42271 () {
1.32 class R implements Runnable {
1.33 Object[] arr;
1.34 @@ -70,14 +67,14 @@
1.35 int cnt = 10;
1.36 arr = new Object[cnt];
1.37 for (int i = 0; i < cnt; i++) {
1.38 - arr[i] = new Integer (i);
1.39 + arr[i] = new Integer(i); // autoboxing makes test fail!
1.40 }
1.41 }
1.42
1.43
1.44 public void run () {
1.45
1.46 - WeakReference r = new WeakReference (last);
1.47 + Reference<?> r = new WeakReference<Object>(last);
1.48 for (int i = 0; i < arr.length; i++) {
1.49 arr[i] = null;
1.50 }
1.51 @@ -91,7 +88,7 @@
1.52 s.add (arr[i]);
1.53 }
1.54 assertEquals (arr.length, s.size ());
1.55 - Iterator it = s.superIterator ();
1.56 + Iterator<Object> it = s.superIterator();
1.57 Object prev = it.next ();
1.58 while (it.hasNext ()) {
1.59 prev = it.next ();
1.60 @@ -113,7 +110,7 @@
1.61 }
1.62 }
1.63
1.64 - private static final class NotifyWhenIteratedSet extends WeakSet {
1.65 + private static final class NotifyWhenIteratedSet extends WeakSet<Object> {
1.66 private Runnable run;
1.67 private int cnt;
1.68
1.69 @@ -122,13 +119,14 @@
1.70 this.cnt = cnt;
1.71 }
1.72
1.73 - public Iterator superIterator () {
1.74 + public Iterator<Object> superIterator() {
1.75 return super.iterator ();
1.76 }
1.77
1.78 - public Iterator iterator () {
1.79 - final Iterator it = super.iterator ();
1.80 - class I implements Iterator {
1.81 + @Override
1.82 + public Iterator<Object> iterator() {
1.83 + final Iterator<Object> it = super.iterator();
1.84 + class I implements Iterator<Object> {
1.85 public boolean hasNext() {
1.86 return it.hasNext ();
1.87 }
1.88 @@ -200,6 +198,7 @@
1.89 * test for issue #106218
1.90 * @throws java.lang.Exception
1.91 */
1.92 + @RandomlyFails // OOME in NB-Core-Build #1908
1.93 public void testWeakSetIntegrity() throws Exception {
1.94 //CharSequence log = Log.enable(WeakSet.class.getName(), Level.FINE);
1.95 ArrayList<WeakReference<TestObj>> awr = new ArrayList<WeakReference<TestObj>>();