--- jsr166/src/test/tck/AbstractQueuedLongSynchronizerTest.java 2017/11/27 23:06:53 1.43 +++ jsr166/src/test/tck/AbstractQueuedLongSynchronizerTest.java 2019/08/13 23:05:18 1.48 @@ -12,11 +12,9 @@ import static java.util.concurrent.TimeU import java.util.Arrays; import java.util.Collection; import java.util.HashSet; -import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.locks.AbstractQueuedLongSynchronizer; import java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject; -import junit.framework.AssertionFailedError; import junit.framework.Test; import junit.framework.TestSuite; @@ -141,7 +139,7 @@ public class AbstractQueuedLongSynchroni long startTime = System.nanoTime(); while (!sync.isQueued(t)) { if (millisElapsedSince(startTime) > LONG_DELAY_MS) - throw new AssertionFailedError("timed out"); + throw new AssertionError("timed out"); Thread.yield(); } assertTrue(t.isAlive()); @@ -225,8 +223,8 @@ public class AbstractQueuedLongSynchroni assertTrue(c.await(timeoutMillis, MILLISECONDS)); break; case awaitNanos: - long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis); - long nanosRemaining = c.awaitNanos(nanosTimeout); + long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis); + long nanosRemaining = c.awaitNanos(timeoutNanos); assertTrue(nanosRemaining > 0); break; case awaitUntil: @@ -253,8 +251,8 @@ public class AbstractQueuedLongSynchroni break; case awaitNanos: startTime = System.nanoTime(); - long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis); - long nanosRemaining = c.awaitNanos(nanosTimeout); + long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis); + long nanosRemaining = c.awaitNanos(timeoutNanos); assertTrue(nanosRemaining <= 0); assertTrue(nanosRemaining > -MILLISECONDS.toNanos(LONG_DELAY_MS)); assertTrue(millisElapsedSince(startTime) >= timeoutMillis); @@ -1266,7 +1264,7 @@ public class AbstractQueuedLongSynchroni // A synchronizer only offering a choice of failure modes class Sync extends AbstractQueuedLongSynchronizer { - boolean pleaseThrow; + volatile boolean pleaseThrow; @Override protected boolean tryAcquire(long ignored) { if (pleaseThrow) throw ex; return false; @@ -1288,7 +1286,7 @@ public class AbstractQueuedLongSynchroni final Thread thread = newStartedThread(new CheckedRunnable() { public void realRun() { try { - if (ThreadLocalRandom.current().nextBoolean()) + if (randomBoolean()) s.acquire(1); else s.acquireShared(1);