On Tue, 8 Dec 2020 09:52:51 GMT, Kim Barrett <kbarr...@openjdk.org> wrote:
> Please review this change that eliminates the use of Reference.isEnqueued by > tests. There were three tests using it: > > vmTestbase/gc/gctests/ReferencesGC/ReferencesGC.java > vmTestbase/gc/gctests/WeakReferenceGC/WeakReferenceGC.java > jdk/java/lang/ref/ReferenceEnqueue.java > > In each of them, some combination of using Reference.refersTo and > ReferenceQueue.remove with a timeout were used to eliminate the use of > Reference.isEnqueued. > > I also cleaned up ReferencesGC.java in various respects. It contained > several bits of dead code, and the failure checks were made stronger. > > Testing: > mach5 tier1 > Locally (linux-x64) ran all three tests with each GC (including Shenandoah). Changes requested by tschatzl (Reviewer). test/jdk/java/lang/ref/ReferenceEnqueue.java line 58: > 56: for (int i = 0; i < iterations; i++) { > 57: System.gc(); > 58: enqueued = (queue.remove(100) == ref); The code does not catch `InterruptedException` like it does in the other files. test/hotspot/jtreg/vmTestbase/gc/gctests/ReferencesGC/ReferencesGC.java line 129: > 127: } > 128: > 129: int REMOVE = (int) (RANGE * RATIO); These two constants could be factored out as static finals to match the casing. ------------- PR: https://git.openjdk.java.net/jdk/pull/1691