From 9e8e15d5d4f2a09d8b08e0b842c169c4de81a709 Mon Sep 17 00:00:00 2001 From: Thomas Risberg Date: Tue, 19 Jul 2011 10:12:53 -0400 Subject: [PATCH] improved the server status tests after server startup to see if this helps cut down on test failures --- .../neo4j/rest/support/LocalTestServer.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/spring-data-neo4j-rest/src/test/java/org/springframework/data/neo4j/rest/support/LocalTestServer.java b/spring-data-neo4j-rest/src/test/java/org/springframework/data/neo4j/rest/support/LocalTestServer.java index c40bec0a7..7d432c872 100644 --- a/spring-data-neo4j-rest/src/test/java/org/springframework/data/neo4j/rest/support/LocalTestServer.java +++ b/spring-data-neo4j-rest/src/test/java/org/springframework/data/neo4j/rest/support/LocalTestServer.java @@ -32,6 +32,7 @@ import org.neo4j.server.modules.ThirdPartyJAXRSModule; import org.neo4j.server.startup.healthcheck.StartupHealthCheck; import org.neo4j.server.startup.healthcheck.StartupHealthCheckRule; import org.neo4j.server.web.Jetty6WebServer; +import org.springframework.dao.DataAccessResourceFailureException; import java.io.File; import java.io.IOException; @@ -107,9 +108,27 @@ public class LocalTestServer { neoServer.start(); neoServer.getWebServer().getJetty().setStopAtShutdown(true); // let the server get fully started - try { - Thread.sleep(1000L); - } catch (InterruptedException e) {} + int sleepCount = 0; + while (!neoServer.getWebServer().getJetty().isStarted()) { + System.out.println( "Neo4j Server Status: " + + (neoServer.getWebServer().getJetty().isStarting() ? "STARTING" : + neoServer.getWebServer().getJetty().isStarted() ? "STARTED" : + neoServer.getWebServer().getJetty().isFailed() ? "FAILED" : + "UNKNOWN")); + if (neoServer.getWebServer().getJetty().isFailed()) { + throw new DataAccessResourceFailureException("Neo4j Server startup failed"); + } + if (sleepCount > 5) { + throw new DataAccessResourceFailureException("Neo4j Server startup unsuccessful after waiting 5 times"); + } + try { + sleepCount++; + System.out.println( "Sleeping ..."); + Thread.sleep(500L); + } catch (InterruptedException e) { + System.out.println( "Interrupted " + e.getMessage()); + } + } } public void stop() {