X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=library%2FWebLibraryServer.java;h=56d78ed4de20b5a52583af21105043a07cc8e89f;hb=379a497e6fd2b959c57b2ff4023413e2daf36232;hp=50dc3d942dcf39aeeadeb68d88c58a714e7551cf;hpb=6d465e886ae46c9da99117cc4302948f700a51c4;p=fanfix.git diff --git a/library/WebLibraryServer.java b/library/WebLibraryServer.java index 50dc3d9..56d78ed 100644 --- a/library/WebLibraryServer.java +++ b/library/WebLibraryServer.java @@ -110,7 +110,7 @@ public class WebLibraryServer extends WebLibraryServerHtml { return NanoHTTPD.newFixedLengthResponse(Status.SERVICE_UNAVAILABLE, NanoHTTPD.MIME_PLAINTEXT, "Server is already exiting..."); } - + exiting = true; Instance.getInstance().getTraceHandler().trace("Exiting"); @@ -131,6 +131,20 @@ public class WebLibraryServer extends WebLibraryServerHtml { doStop(); + new Thread(new Runnable() { + @Override + public void run() { + try { + Thread.sleep(1500); + } catch (InterruptedException e) { + } + + Instance.getInstance().getTraceHandler() + .trace("Exit timeout: force-quit"); + System.exit(0); + } + }, "Exit program after timeout of 1500 ms").start(); + return NanoHTTPD.newFixedLengthResponse(Status.OK, NanoHTTPD.MIME_PLAINTEXT, "Exited"); } @@ -203,9 +217,8 @@ public class WebLibraryServer extends WebLibraryServerHtml { jsons.add(JsonIO.toJson(meta)); } - return newInputStreamResponse("application/json", - new ByteArrayInputStream( - new JSONArray(jsons).toString().getBytes())); + return NanoHTTPD.newFixedLengthResponse(Status.OK, + "application/json", new JSONArray(jsons).toString()); } return NanoHTTPD.newFixedLengthResponse(Status.BAD_REQUEST, @@ -341,7 +354,7 @@ public class WebLibraryServer extends WebLibraryServerHtml { return NanoHTTPD.newFixedLengthResponse(Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT, "SET story part not allowed"); } - + if (exiting) { return NanoHTTPD.newFixedLengthResponse(Status.SERVICE_UNAVAILABLE, NanoHTTPD.MIME_PLAINTEXT, "Server is exiting..."); @@ -426,7 +439,7 @@ public class WebLibraryServer extends WebLibraryServerHtml { return NanoHTTPD.newFixedLengthResponse(Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT, "Cover request not allowed"); } - + if (exiting) { return NanoHTTPD.newFixedLengthResponse(Status.SERVICE_UNAVAILABLE, NanoHTTPD.MIME_PLAINTEXT, "Server is exiting..."); @@ -457,7 +470,7 @@ public class WebLibraryServer extends WebLibraryServerHtml { return NanoHTTPD.newFixedLengthResponse(Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT, "Import not allowed"); } - + if (exiting) { return NanoHTTPD.newFixedLengthResponse(Status.SERVICE_UNAVAILABLE, NanoHTTPD.MIME_PLAINTEXT, "Server is exiting..."); @@ -529,7 +542,7 @@ public class WebLibraryServer extends WebLibraryServerHtml { return NanoHTTPD.newFixedLengthResponse(Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT, "Delete not allowed"); } - + if (exiting) { return NanoHTTPD.newFixedLengthResponse(Status.SERVICE_UNAVAILABLE, NanoHTTPD.MIME_PLAINTEXT, "Server is exiting...");