1.1 --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sun Dec 23 18:24:18 2012 +0100
1.2 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sun Dec 23 23:30:06 2012 +0100
1.3 @@ -54,6 +54,7 @@
1.4 */
1.5 public class Bck2BrwsrLauncher {
1.6 private static final Logger LOG = Logger.getLogger(Bck2BrwsrLauncher.class.getName());
1.7 + private static final MethodInvocation END = new MethodInvocation(null, null);
1.8 private Set<ClassLoader> loaders = new LinkedHashSet<>();
1.9 private BlockingQueue<MethodInvocation> methods = new LinkedBlockingQueue<>();
1.10 private long timeOut;
1.11 @@ -153,10 +154,11 @@
1.12 }
1.13
1.14 MethodInvocation mi = methods.take();
1.15 - if (mi == null) {
1.16 + if (mi == END) {
1.17 response.getWriter().write("");
1.18 wait.countDown();
1.19 cnt = 0;
1.20 + LOG.log(Level.INFO, "End of data reached. Exiting.");
1.21 return;
1.22 }
1.23
1.24 @@ -177,6 +179,7 @@
1.25 }
1.26
1.27 public void shutdown() throws InterruptedException, IOException {
1.28 + methods.offer(END);
1.29 for (;;) {
1.30 int prev = methods.size();
1.31 if (wait.await(timeOut, TimeUnit.MILLISECONDS)) {