diff --git a/core/src/test/java/io/undertow/server/handlers/ChunkedResponseTrailersTestCase.java b/core/src/test/java/io/undertow/server/handlers/ChunkedResponseTrailersTestCase.java index 15b40e641e..7eac0726db 100644 --- a/core/src/test/java/io/undertow/server/handlers/ChunkedResponseTrailersTestCase.java +++ b/core/src/test/java/io/undertow/server/handlers/ChunkedResponseTrailersTestCase.java @@ -39,6 +39,7 @@ import org.apache.http.protocol.HttpContext; import org.junit.Assert; import org.junit.Assume; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -61,6 +62,11 @@ public class ChunkedResponseTrailersTestCase { private static volatile ServerConnection connection; + @Before + public void reset() { + connection = null; + } + @BeforeClass public static void setup() { final BlockingHandler blockingHandler = new BlockingHandler(); diff --git a/core/src/test/java/io/undertow/server/handlers/ChunkedResponseTransferCodingTestCase.java b/core/src/test/java/io/undertow/server/handlers/ChunkedResponseTransferCodingTestCase.java index 5480f8d596..79c70ad97e 100644 --- a/core/src/test/java/io/undertow/server/handlers/ChunkedResponseTransferCodingTestCase.java +++ b/core/src/test/java/io/undertow/server/handlers/ChunkedResponseTransferCodingTestCase.java @@ -29,6 +29,7 @@ import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.junit.Assert; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -48,6 +49,11 @@ public class ChunkedResponseTransferCodingTestCase { private static volatile ServerConnection connection; + @Before + public void reset() { + connection = null; + } + @BeforeClass public static void setup() { final BlockingHandler blockingHandler = new BlockingHandler(); diff --git a/core/src/test/java/io/undertow/server/handlers/FixedLengthResponseTestCase.java b/core/src/test/java/io/undertow/server/handlers/FixedLengthResponseTestCase.java index 226f658235..14921f71fa 100644 --- a/core/src/test/java/io/undertow/server/handlers/FixedLengthResponseTestCase.java +++ b/core/src/test/java/io/undertow/server/handlers/FixedLengthResponseTestCase.java @@ -30,6 +30,7 @@ import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.junit.Assert; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -50,6 +51,11 @@ public class FixedLengthResponseTestCase { private static volatile ServerConnection connection; + @Before + public void reset() { + connection = null; + } + @BeforeClass public static void setup() { DefaultServer.setRootHandler(new HttpHandler() { diff --git a/core/src/test/java/io/undertow/server/handlers/MetricsHandlerTestCase.java b/core/src/test/java/io/undertow/server/handlers/MetricsHandlerTestCase.java index 5d442b3139..db8725c1d8 100644 --- a/core/src/test/java/io/undertow/server/handlers/MetricsHandlerTestCase.java +++ b/core/src/test/java/io/undertow/server/handlers/MetricsHandlerTestCase.java @@ -28,7 +28,6 @@ import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -40,10 +39,11 @@ @RunWith(DefaultServer.class) public class MetricsHandlerTestCase { - private static MetricsHandler metricsHandler; - private static CompletionLatchHandler latchHandler; - @BeforeClass - public static void setup() { + @Test + public void testMetrics() throws IOException, InterruptedException { + + MetricsHandler metricsHandler; + CompletionLatchHandler latchHandler; DefaultServer.setRootHandler(latchHandler = new CompletionLatchHandler(metricsHandler = new MetricsHandler(new HttpHandler() { @Override public void handleRequest(HttpServerExchange exchange) throws Exception { @@ -51,10 +51,6 @@ public void handleRequest(HttpServerExchange exchange) throws Exception { exchange.getResponseSender().send("Hello"); } }))); - } - - @Test - public void testMetrics() throws IOException, InterruptedException { HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/path"); TestHttpClient client = new TestHttpClient(); try { diff --git a/core/src/test/java/io/undertow/server/handlers/caching/CacheHandlerTestCase.java b/core/src/test/java/io/undertow/server/handlers/caching/CacheHandlerTestCase.java index cf3a3f21fe..8b6ad4f800 100644 --- a/core/src/test/java/io/undertow/server/handlers/caching/CacheHandlerTestCase.java +++ b/core/src/test/java/io/undertow/server/handlers/caching/CacheHandlerTestCase.java @@ -34,7 +34,6 @@ import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -48,10 +47,10 @@ public class CacheHandlerTestCase { - private static final AtomicInteger responseCount = new AtomicInteger(); + @Test + public void testBasicPathBasedCaching() throws IOException { - @BeforeClass - public static void setup() { + final AtomicInteger responseCount = new AtomicInteger(); final HttpHandler messageHandler = new HttpHandler() { @Override @@ -66,10 +65,7 @@ public void handleRequest(final HttpServerExchange exchange) throws Exception { }; final CacheHandler cacheHandler = new CacheHandler(new DirectBufferCache(100, 10, 1000), messageHandler); DefaultServer.setRootHandler(cacheHandler); - } - @Test - public void testBasicPathBasedCaching() throws IOException { TestHttpClient client = new TestHttpClient(); try { HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/path"); diff --git a/core/src/test/java/io/undertow/testutils/DefaultServer.java b/core/src/test/java/io/undertow/testutils/DefaultServer.java index d74b571cb6..2ecd1b498a 100644 --- a/core/src/test/java/io/undertow/testutils/DefaultServer.java +++ b/core/src/test/java/io/undertow/testutils/DefaultServer.java @@ -384,10 +384,10 @@ private static void runInternal(final RunNotifier notifier) { } else { if(h2) { - log.error("HTTP2 selected but Netty ALPN was not on the boot class path"); + throw new RuntimeException("HTTP2 selected but Netty ALPN was not on the boot class path"); } if(spdy) { - log.error("SPDY selected but Netty ALPN was not on the boot class path"); + throw new RuntimeException("SPDY selected but Netty ALPN was not on the boot class path"); } openListener = new HttpOpenListener(pool, OptionMap.create(UndertowOptions.BUFFER_PIPELINED_DATA, true, UndertowOptions.ENABLE_CONNECTOR_STATISTICS, true)); acceptListener = ChannelListeners.openListenerAdapter(wrapOpenListener(openListener)); diff --git a/servlet/src/test/java/io/undertow/servlet/test/defaultservlet/DefaultServletCachingTestCase.java b/servlet/src/test/java/io/undertow/servlet/test/defaultservlet/DefaultServletCachingTestCase.java index a85bc9d9c4..37e72cde04 100644 --- a/servlet/src/test/java/io/undertow/servlet/test/defaultservlet/DefaultServletCachingTestCase.java +++ b/servlet/src/test/java/io/undertow/servlet/test/defaultservlet/DefaultServletCachingTestCase.java @@ -29,6 +29,7 @@ import io.undertow.server.handlers.cache.DirectBufferCache; import io.undertow.server.handlers.resource.CachingResourceManager; import io.undertow.server.handlers.resource.PathResourceManager; +import io.undertow.server.session.SecureRandomSessionIdGenerator; import io.undertow.servlet.Servlets; import io.undertow.servlet.api.DeploymentInfo; import io.undertow.servlet.api.DeploymentManager; @@ -47,6 +48,7 @@ import org.apache.http.client.methods.HttpGet; import org.junit.AfterClass; import org.junit.Assert; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -62,6 +64,14 @@ public class DefaultServletCachingTestCase { public static final String DIR_NAME = "cacheTest"; static Path tmpDir; + static DirectBufferCache dataCache = new DirectBufferCache(1000, 10, 1000 * 10 * 1000, BufferAllocator.DIRECT_BYTE_BUFFER_ALLOCATOR, METADATA_MAX_AGE); + + @Before + public void before() { + for(Object k : dataCache.getAllKeys()) { + dataCache.remove(k); + } + } @BeforeClass public static void setup() throws ServletException, IOException { @@ -76,7 +86,7 @@ public static void setup() throws ServletException, IOException { .setClassLoader(ServletPathMappingTestCase.class.getClassLoader()) .setContextPath("/servletContext") .setDeploymentName("servletContext.war") - .setResourceManager(new CachingResourceManager(100, 10000, new DirectBufferCache(1000, 10, 1000 * 10 * 1000, BufferAllocator.DIRECT_BYTE_BUFFER_ALLOCATOR, METADATA_MAX_AGE), new PathResourceManager(tmpDir, 10485760), METADATA_MAX_AGE)); + .setResourceManager(new CachingResourceManager(100, 10000, dataCache, new PathResourceManager(tmpDir, 10485760), METADATA_MAX_AGE)); builder.addServlet(new ServletInfo("DefaultTestServlet", PathTestServlet.class) .addMapping("/path/default")) @@ -98,7 +108,7 @@ public static void after() throws IOException{ @Test public void testFileExistanceCheckCached() throws IOException, InterruptedException { TestHttpClient client = new TestHttpClient(); - String fileName = "doesnotexist.html"; + String fileName = new SecureRandomSessionIdGenerator().createSessionId() + ".html"; try { HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/servletContext/" + fileName); HttpResponse result = client.execute(get); @@ -118,6 +128,7 @@ public void testFileExistanceCheckCached() throws IOException, InterruptedExcept Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode()); String response = HttpClientUtils.readResponse(result); Assert.assertEquals("hello", response); + Files.delete(f); } finally { client.getConnectionManager().shutdown(); } diff --git a/servlet/src/test/java/io/undertow/servlet/test/metrics/ServletMetricsHandlerTestCase.java b/servlet/src/test/java/io/undertow/servlet/test/metrics/ServletMetricsHandlerTestCase.java index 1acd3a6496..f2cba5ca4d 100644 --- a/servlet/src/test/java/io/undertow/servlet/test/metrics/ServletMetricsHandlerTestCase.java +++ b/servlet/src/test/java/io/undertow/servlet/test/metrics/ServletMetricsHandlerTestCase.java @@ -18,10 +18,6 @@ package io.undertow.servlet.test.metrics; -import java.io.IOException; -import javax.servlet.DispatcherType; -import javax.servlet.ServletException; - import io.undertow.server.handlers.MetricsHandler; import io.undertow.server.handlers.PathHandler; import io.undertow.servlet.api.DeploymentInfo; @@ -42,23 +38,24 @@ import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; +import javax.servlet.DispatcherType; + /** * @author Stuart Douglas */ @RunWith(DefaultServer.class) public class ServletMetricsHandlerTestCase { - private static TestMetricsCollector metricsCollector = new TestMetricsCollector(); + @Test + public void testMetrics() throws Exception { - private static CompletionLatchHandler completionLatchHandler; - @BeforeClass - public static void setup() throws ServletException { + final TestMetricsCollector metricsCollector = new TestMetricsCollector(); + CompletionLatchHandler completionLatchHandler; final PathHandler root = new PathHandler(); final ServletContainer container = ServletContainer.Factory.newInstance(); @@ -81,11 +78,7 @@ public static void setup() throws ServletException { root.addPrefixPath(builder.getContextPath(), manager.start()); DefaultServer.setRootHandler(completionLatchHandler = new CompletionLatchHandler(root)); - } - - @Test - public void testMetrics() throws IOException, InterruptedException { HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/servletContext/path/default"); TestHttpClient client = new TestHttpClient(); try { diff --git a/servlet/src/test/java/io/undertow/servlet/test/request/ExecutorPerServletTestCase.java b/servlet/src/test/java/io/undertow/servlet/test/request/ExecutorPerServletTestCase.java index 6576b2d31c..1a53c7b4e1 100644 --- a/servlet/src/test/java/io/undertow/servlet/test/request/ExecutorPerServletTestCase.java +++ b/servlet/src/test/java/io/undertow/servlet/test/request/ExecutorPerServletTestCase.java @@ -36,9 +36,9 @@ import io.undertow.util.StatusCodes; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; -import org.junit.AfterClass; +import org.junit.After; import org.junit.Assert; -import org.junit.BeforeClass; +import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -49,13 +49,13 @@ @RunWith(DefaultServer.class) public class ExecutorPerServletTestCase { - private static ExecutorService executorService; + private ExecutorService executorService; public static final int NUM_THREADS = 10; public static final int NUM_REQUESTS = 100; - @BeforeClass - public static void setup() throws ServletException { + @Before + public void setup() throws ServletException { DeploymentUtils.setupServlet( new ServletInfo("racey", RaceyAddServlet.class) .addMapping("/racey"), @@ -64,8 +64,8 @@ public static void setup() throws ServletException { .setExecutor(executorService = Executors.newSingleThreadExecutor())); } - @AfterClass - public static void after() { + @After + public void after() { executorService.shutdown(); } diff --git a/servlet/src/test/java/io/undertow/servlet/test/session/ServletSessionCrawlerTestCase.java b/servlet/src/test/java/io/undertow/servlet/test/session/ServletSessionCrawlerTestCase.java index 2aee631c9e..a9786097d3 100644 --- a/servlet/src/test/java/io/undertow/servlet/test/session/ServletSessionCrawlerTestCase.java +++ b/servlet/src/test/java/io/undertow/servlet/test/session/ServletSessionCrawlerTestCase.java @@ -37,7 +37,6 @@ import org.apache.http.client.methods.HttpGet; import org.apache.http.cookie.Cookie; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -53,11 +52,8 @@ @RunWith(DefaultServer.class) public class ServletSessionCrawlerTestCase { - - @BeforeClass - public static void setup() throws ServletException { - - + @Test + public void testCrawlerSessionUsage() throws IOException, InterruptedException { final PathHandler pathHandler = new PathHandler(); final ServletContainer container = ServletContainer.Factory.newInstance(); DeploymentInfo builder = new DeploymentInfo() @@ -77,11 +73,6 @@ public static void setup() throws ServletException { throw new RuntimeException(e); } DefaultServer.setRootHandler(pathHandler); - } - - - @Test - public void testCrawlerSessionUsage() throws IOException, InterruptedException { TestHttpClient client = new TestHttpClient(); client.setCookieStore(new CookieStore() { diff --git a/servlet/src/test/java/io/undertow/servlet/test/streams/ContentLengthCloseFlushServlet.java b/servlet/src/test/java/io/undertow/servlet/test/streams/ContentLengthCloseFlushServlet.java index 2c81daacec..89cc50a610 100644 --- a/servlet/src/test/java/io/undertow/servlet/test/streams/ContentLengthCloseFlushServlet.java +++ b/servlet/src/test/java/io/undertow/servlet/test/streams/ContentLengthCloseFlushServlet.java @@ -36,6 +36,7 @@ public class ContentLengthCloseFlushServlet extends HttpServlet { @Override protected synchronized void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { if (completed) { + completed = false; resp.getWriter().write("OK"); } else { resp.setContentLength(1); diff --git a/servlet/src/test/java/io/undertow/servlet/test/streams/EarlyCloseServlet.java b/servlet/src/test/java/io/undertow/servlet/test/streams/EarlyCloseServlet.java index 7dd3c534e4..cdecd3c5de 100644 --- a/servlet/src/test/java/io/undertow/servlet/test/streams/EarlyCloseServlet.java +++ b/servlet/src/test/java/io/undertow/servlet/test/streams/EarlyCloseServlet.java @@ -37,7 +37,7 @@ @RunWith(DefaultServer.class) public class EarlyCloseServlet extends HttpServlet { - private static volatile ServerConnection connection; + private volatile ServerConnection connection; @Override protected void doPost(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { diff --git a/servlet/src/test/java/io/undertow/servlet/test/streams/ServletInputStreamEarlyCloseTestCase.java b/servlet/src/test/java/io/undertow/servlet/test/streams/ServletInputStreamEarlyCloseTestCase.java index 5b88e43ab1..30c031ebf7 100644 --- a/servlet/src/test/java/io/undertow/servlet/test/streams/ServletInputStreamEarlyCloseTestCase.java +++ b/servlet/src/test/java/io/undertow/servlet/test/streams/ServletInputStreamEarlyCloseTestCase.java @@ -18,8 +18,6 @@ package io.undertow.servlet.test.streams; -import javax.servlet.ServletException; - import io.undertow.servlet.api.ServletInfo; import io.undertow.servlet.test.util.DeploymentUtils; import io.undertow.testutils.DefaultServer; @@ -30,7 +28,6 @@ import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @@ -44,15 +41,12 @@ public class ServletInputStreamEarlyCloseTestCase { public static final String SERVLET = "servlet"; - @BeforeClass - public static void setup() throws ServletException { + @Test + public void testServletInputStreamEarlyClose() throws Exception { + DeploymentUtils.setupServlet( new ServletInfo(SERVLET, EarlyCloseServlet.class) .addMapping("/" + SERVLET)); - } - - @Test - public void testServletInputStreamEarlyClose() throws Exception { TestHttpClient client = new TestHttpClient(); try { String uri = DefaultServer.getDefaultServerURL() + "/servletContext/" + SERVLET; diff --git a/websockets-jsr/src/test/java/io/undertow/websockets/jsr/test/TestMessagesReceivedInOrder.java b/websockets-jsr/src/test/java/io/undertow/websockets/jsr/test/TestMessagesReceivedInOrder.java index e4e29676a3..9a05ee11f4 100644 --- a/websockets-jsr/src/test/java/io/undertow/websockets/jsr/test/TestMessagesReceivedInOrder.java +++ b/websockets-jsr/src/test/java/io/undertow/websockets/jsr/test/TestMessagesReceivedInOrder.java @@ -93,6 +93,8 @@ public static void setup() throws ServletException { @Test public void testMessagesReceivedInOrder() throws Exception { + stacks.clear(); + EchoSocket.receivedEchos = new FutureResult<>(); final ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); final CountDownLatch done = new CountDownLatch(1); final AtomicReference error = new AtomicReference<>(); @@ -145,8 +147,8 @@ public void onOpen(final Session session, EndpointConfig endpointConfig) { @ServerEndpoint("/webSocket") public static class EchoSocket { - private List echos = new CopyOnWriteArrayList<>(); - public static final FutureResult> receivedEchos = new FutureResult<>(); + private final List echos = new CopyOnWriteArrayList<>(); + public static volatile FutureResult> receivedEchos = new FutureResult<>(); @OnMessage public void onMessage(ByteBuffer dataBuffer, Session session) throws IOException {