1.1 --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Fri Dec 21 12:49:27 2012 +0100
1.2 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Dec 22 14:55:49 2012 +0100
1.3 @@ -179,6 +179,7 @@
1.4 conf.addHttpHandler(new Page(resources,
1.5 "org/apidesign/bck2brwsr/launcher/harness.xhtml"
1.6 ), "/execute");
1.7 + final int[] currentTest = { -1 };
1.8 conf.addHttpHandler(new HttpHandler() {
1.9 int cnt;
1.10 @Override
1.11 @@ -189,6 +190,7 @@
1.12 value = value.replace("%20", " ");
1.13 cases[Integer.parseInt(id)].result = value;
1.14 }
1.15 + currentTest[0] = cnt;
1.16
1.17 if (cnt >= cases.length) {
1.18 response.getWriter().write("");
1.19 @@ -208,7 +210,24 @@
1.20
1.21 launchServerAndBrwsr(server, "/execute");
1.22
1.23 - wait.await(timeOut, TimeUnit.MILLISECONDS);
1.24 + for (;;) {
1.25 + int prev = currentTest[0];
1.26 + if (wait.await(timeOut, TimeUnit.MILLISECONDS)) {
1.27 + break;
1.28 + }
1.29 + if (prev == currentTest[0]) {
1.30 + LOG.log(
1.31 + Level.WARNING,
1.32 + "Timeout and no test has been executed meanwhile (at {0}). Giving up.",
1.33 + currentTest[0]
1.34 + );
1.35 + break;
1.36 + }
1.37 + LOG.log(Level.INFO,
1.38 + "Timeout, but tests got from {0} to {1}. Trying again.",
1.39 + new Object[]{prev, currentTest[0]}
1.40 + );
1.41 + }
1.42 server.stop();
1.43 }
1.44