This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
commit 69bb6e40cbb4c571dbafdaa5b368036bdfb5bb27 Author: Robert Munteanu <[email protected]> AuthorDate: Wed Jun 5 13:59:43 2019 +0200 Cleanups in tests --- .../org/apache/sling/uca/impl/IntegrationTest.java | 16 +++++++ .../java/org/apache/sling/uca/impl/ServerRule.java | 50 ++++------------------ 2 files changed, 25 insertions(+), 41 deletions(-) diff --git a/url-connection-agent/src/test/java/org/apache/sling/uca/impl/IntegrationTest.java b/url-connection-agent/src/test/java/org/apache/sling/uca/impl/IntegrationTest.java index 31ba3bf..d952181 100644 --- a/url-connection-agent/src/test/java/org/apache/sling/uca/impl/IntegrationTest.java +++ b/url-connection-agent/src/test/java/org/apache/sling/uca/impl/IntegrationTest.java @@ -39,6 +39,17 @@ public class IntegrationTest { private static final Logger LOG = LoggerFactory.getLogger(IntegrationTest.class); + /** + * Validates that connecting to a unaccessible port on an existing port fails with a connect + * timeout exception + * + * <p>It is surprisingly hard to simulate a connnection timeout. The most reliable way seems to + * be to get a firewall to drop packets, but this is very hard to do portably and safely + * in a unit test. The least bad possible solution is to access an URL that we know will timeout + * and that is related to us - the Sling website.</p> + * + * @throws IOException various I/O problems + */ @Test public void connectTimeout() throws IOException { @@ -48,6 +59,11 @@ public class IntegrationTest { assertEquals("connect timed out", exception.getMessage()); } + /** + * Validates that connecting to a host that delays the response fails with a read timeout + * + * @throws IOException various I/O problems + */ @Test public void readTimeout() throws IOException { diff --git a/url-connection-agent/src/test/java/org/apache/sling/uca/impl/ServerRule.java b/url-connection-agent/src/test/java/org/apache/sling/uca/impl/ServerRule.java index a799b55..62a6380 100644 --- a/url-connection-agent/src/test/java/org/apache/sling/uca/impl/ServerRule.java +++ b/url-connection-agent/src/test/java/org/apache/sling/uca/impl/ServerRule.java @@ -17,17 +17,13 @@ package org.apache.sling.uca.impl; import java.io.IOException; -import java.util.Collections; import java.util.concurrent.TimeUnit; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.eclipse.jetty.io.Connection; -import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.server.Connector; -import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; @@ -40,7 +36,7 @@ import org.slf4j.LoggerFactory; class ServerRule implements BeforeAllCallback, AfterAllCallback { - private static final Logger LOG = LoggerFactory.getLogger(ServerRule.class); + private final Logger logger = LoggerFactory.getLogger(getClass()); private static final int LOCAL_PORT = 12312; @@ -69,43 +65,14 @@ class ServerRule implements BeforeAllCallback, AfterAllCallback { } }; connector.setPort(LOCAL_PORT); - connector.setConnectionFactories(Collections.singleton(new HttpConnectionFactory() { - @Override - public Connection newConnection(Connector connector, EndPoint endPoint) { - LOG.info("Waiting before creating connection"); - try { - Thread.sleep(TimeUnit.SECONDS.toMillis(10)); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new RuntimeException("Interrupted"); - } - - Connection connection = super.newConnection(connector, endPoint); - LOG.info("Connection created"); - return connection; - } - })); - server.setConnectors(new Connector[] { - connector - }); + server.setConnectors(new Connector[] { connector }); server.setHandler(new AbstractHandler() { @Override public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { - - LOG.info("Waiting before handling"); - - try { - Thread.sleep(TimeUnit.SECONDS.toMillis(10)); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - return; - } - response.setStatus(HttpServletResponse.SC_NO_CONTENT); baseRequest.setHandled(true); - LOG.info("Handled"); } }); @@ -114,11 +81,12 @@ class ServerRule implements BeforeAllCallback, AfterAllCallback { @Override public void afterAll(ExtensionContext context) throws Exception { - if ( server != null ) - try { - server.stop(); - } catch (Exception e) { - e.printStackTrace(); - } + if ( server == null ) + return; + try { + server.stop(); + } catch (Exception e) { + logger.info("Failed shutting down server", e); + } } } \ No newline at end of file
