7123972: test/java/lang/annotation/loaderLeak/Main.java fails intermittently
Reviewed-by: dholmes, smarks
Contributed-by: Eric Wang <yiming.wang@oracle.com>
--- a/jdk/test/ProblemList.txt Thu Jul 05 15:12:10 2012 -0700
+++ b/jdk/test/ProblemList.txt Thu Jul 05 15:13:45 2012 -0700
@@ -122,9 +122,6 @@
# jdk_lang
-# 7123972
-java/lang/annotation/loaderLeak/Main.java generic-all
-
# 6944188
java/lang/management/ThreadMXBean/ThreadStateTest.java generic-all
--- a/jdk/test/java/lang/annotation/loaderLeak/Main.java Thu Jul 05 15:12:10 2012 -0700
+++ b/jdk/test/java/lang/annotation/loaderLeak/Main.java Thu Jul 05 15:13:45 2012 -0700
@@ -57,9 +57,17 @@
System.gc();
System.gc();
loader = null;
- System.gc();
- System.gc();
- if (c.get() != null) throw new AssertionError();
+
+ // Might require multiple calls to System.gc() for weak-references
+ // processing to be complete. If the weak-reference is not cleared as
+ // expected we will hang here until timed out by the test harness.
+ while (true) {
+ System.gc();
+ Thread.sleep(20);
+ if (c.get() == null) {
+ break;
+ }
+ }
}
}