# HG changeset patch # User prr # Date 1450976870 28800 # Node ID 68448100f9b41eee791add2b355a28cab1d21834 # Parent fb6bef1325f91a812ecec899ebadee69bb272762 8145808: java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java hangs on Win. 8 Reviewed-by: serb, flar diff -r fb6bef1325f9 -r 68448100f9b4 jdk/test/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java --- a/jdk/test/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java Thu Dec 24 14:04:36 2015 +0300 +++ b/jdk/test/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java Thu Dec 24 09:07:50 2015 -0800 @@ -23,7 +23,7 @@ /* @test - @bug 5089429 6982632 + @bug 5089429 6982632 8145808 @summary Checks that we don't crash if rendering operations and state changes are performed on a graphics context from different threads. @@ -34,6 +34,7 @@ import java.awt.*; import java.awt.image.*; import java.awt.geom.*; +import java.util.concurrent.atomic.AtomicInteger; public class MTGraphicsAccessTest { @@ -46,7 +47,7 @@ static long testRunTime; volatile boolean done; - volatile int stillRunning; + AtomicInteger stillRunning = new AtomicInteger(0); volatile int numexceptions; Graphics2D sharedGraphics; @@ -108,7 +109,7 @@ mysleep(testRunTime); done = true; - while (stillRunning > 0) { mysleep(500); } + while (stillRunning.get() > 0) { mysleep(500); } if (numexceptions == 0) { System.err.println("Test passed"); @@ -187,7 +188,7 @@ Runnable testRunnable; public TesterThread(Runnable testRunnable) { - stillRunning++; + stillRunning.incrementAndGet(); this.testRunnable = testRunnable; } @@ -203,7 +204,7 @@ } } } finally { - stillRunning--; + stillRunning.decrementAndGet(); } } }