1.1 --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Tue Feb 05 08:48:23 2013 +0100
1.2 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Mon Feb 11 19:47:46 2013 +0100
1.3 @@ -191,10 +191,26 @@
1.4 String id = request.getParameter("request");
1.5 String value = request.getParameter("result");
1.6
1.7 +
1.8 + InvocationContext mi = null;
1.9 + int caseNmbr = -1;
1.10 +
1.11 if (id != null && value != null) {
1.12 LOG.log(Level.INFO, "Received result for case {0} = {1}", new Object[]{id, value});
1.13 value = decodeURL(value);
1.14 - cases.get(Integer.parseInt(id)).result(value, null);
1.15 + int indx = Integer.parseInt(id);
1.16 + cases.get(indx).result(value, null);
1.17 + if (++indx < cases.size()) {
1.18 + mi = cases.get(indx);
1.19 + LOG.log(Level.INFO, "Re-executing case {0}", indx);
1.20 + caseNmbr = indx;
1.21 + }
1.22 + } else {
1.23 + if (!cases.isEmpty()) {
1.24 + LOG.info("Re-executing test cases");
1.25 + mi = cases.get(0);
1.26 + caseNmbr = 0;
1.27 + }
1.28 }
1.29
1.30 if (prev != null) {
1.31 @@ -202,7 +218,10 @@
1.32 prev = null;
1.33 }
1.34
1.35 - InvocationContext mi = methods.take();
1.36 + if (mi == null) {
1.37 + mi = methods.take();
1.38 + caseNmbr = cnt++;
1.39 + }
1.40 if (mi == END) {
1.41 response.getWriter().write("");
1.42 wait.countDown();
1.43 @@ -218,11 +237,11 @@
1.44 cases.add(mi);
1.45 final String cn = mi.clazz.getName();
1.46 final String mn = mi.methodName;
1.47 - LOG.log(Level.INFO, "Request for {0} case. Sending {1}.{2}", new Object[]{cnt, cn, mn});
1.48 + LOG.log(Level.INFO, "Request for {0} case. Sending {1}.{2}", new Object[]{caseNmbr, cn, mn});
1.49 response.getWriter().write("{"
1.50 + "className: '" + cn + "', "
1.51 + "methodName: '" + mn + "', "
1.52 - + "request: " + cnt
1.53 + + "request: " + caseNmbr
1.54 );
1.55 if (mi.html != null) {
1.56 response.getWriter().write(", html: '");
1.57 @@ -230,7 +249,6 @@
1.58 response.getWriter().write("'");
1.59 }
1.60 response.getWriter().write("}");
1.61 - cnt++;
1.62 }
1.63 }, "/data");
1.64