RFR: 8257876: Avoid Reference.isEnqueued in tests
Thomas Schatzl
tschatzl at openjdk.java.net
Wed Dec 9 13:31:41 UTC 2020
On Tue, 8 Dec 2020 09:52:51 GMT, Kim Barrett <kbarrett at 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
More information about the core-libs-dev
mailing list