diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/LocalAsyncContextTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/LocalAsyncContextTest.java index 54d0a75e722..163efad3c7b 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/LocalAsyncContextTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/LocalAsyncContextTest.java @@ -22,7 +22,9 @@ import static org.junit.Assert.assertEquals; import java.io.IOException; import java.io.InputStream; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Supplier; import javax.servlet.AsyncContext; import javax.servlet.AsyncEvent; @@ -84,8 +86,8 @@ public class LocalAsyncContextTest _handler.setCompleteAfter(-1); response=process(null); check(response,"TIMEOUT"); - assertEquals(1,__completed.get()); - assertEquals(1,__completed1.get()); + spinAssertEquals(1,__completed::get); + spinAssertEquals(1,__completed1::get); } @Test @@ -218,8 +220,8 @@ public class LocalAsyncContextTest _handler.setCompleteAfter2(-1); response=process(null); check(response,"STARTASYNC","DISPATCHED","startasync","STARTASYNC","DISPATCHED"); - assertEquals(1,__completed.get()); - assertEquals(0,__completed1.get()); + spinAssertEquals(1,__completed::get); + spinAssertEquals(0,__completed1::get); } @@ -596,4 +598,33 @@ public class LocalAsyncContextTest } }; + + static void spinAssertEquals(T expected, Supplier actualSupplier) + { + spinAssertEquals(expected,actualSupplier,10,TimeUnit.SECONDS); + } + + static void spinAssertEquals(T expected, Supplier actualSupplier, long waitFor, TimeUnit units) + { + long now = System.nanoTime(); + long end = now+units.toNanos(waitFor); + T actual=null; + while(now < end) + { + actual=actualSupplier.get(); + if (actual==null && expected==null || + actual!=null && actual.equals(expected)) + break; + try + { + Thread.sleep(10); + } + catch (InterruptedException e) + { + } + now = System.nanoTime(); + } + + assertEquals(expected,actual); + } } diff --git a/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpChannelAssociationTest.java b/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpChannelAssociationTest.java index 83cd54f02ec..0ab8d672bfd 100644 --- a/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpChannelAssociationTest.java +++ b/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpChannelAssociationTest.java @@ -49,10 +49,8 @@ import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.util.Promise; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; -@Ignore public class HttpChannelAssociationTest extends AbstractTest { public HttpChannelAssociationTest(Transport transport)