# HG changeset patch # User Jaroslav Tulach # Date 1461730439 -7200 # Node ID bafdddd2a0cf3acb48257a638c840fd38282caba # Parent a139403de81996c3d530a5837a71f76e2a14f90a System.exit terminates associated launcher diff -r a139403de819 -r bafdddd2a0cf launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java Wed Apr 27 05:49:41 2016 +0200 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java Wed Apr 27 06:13:59 2016 +0200 @@ -900,9 +900,19 @@ @Override public void service(Request request, Response response) throws Exception { - if ("true".equals(request.getParameter("exit"))) { - LOG.info("Exit request received. Shutting down!"); - shutdown(); + final String exit = request.getParameter("exit"); + if (exit != null) { + int exitCode = -1; + try { + exitCode = Integer.parseInt(exit); + } catch (NumberFormatException ex) { + exitCode = "true".equals(exit) ? 0 : -1; + } + if (exitCode != -1) { + LOG.info("Exit request received. Shutting down!"); + shutdown(); + System.exit(exitCode); + } } if (request.getRequestURI().equals(vmResource)) { response.setCharacterEncoding("UTF-8"); diff -r a139403de819 -r bafdddd2a0cf rt/emul/compact/src/main/java/java/lang/System.java --- a/rt/emul/compact/src/main/java/java/lang/System.java Wed Apr 27 05:49:41 2016 +0200 +++ b/rt/emul/compact/src/main/java/java/lang/System.java Wed Apr 27 06:13:59 2016 +0200 @@ -85,7 +85,12 @@ return "\n"; } - @JavaScriptBody(args = { "exitCode" }, body = "window.close();") + @JavaScriptBody(args = { "exitCode" }, body = "" + + "var xhttp = new XMLHttpRequest();\n" + + "xhttp.open('GET', '/?exit=' + exitCode, true);\n" + + "xhttp.send();\n" + + "window.close();\n" + ) public static void exit(int exitCode) { }