From 5d0b35d53aa0a842ed280b183738bc599809fd6c Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 4 Nov 2016 17:02:15 +0000 Subject: [PATCH] Console: Improve handling and logging of webapps that fail to start --- .../java/src/net/i2p/router/web/ConfigClientsHandler.java | 2 +- .../java/src/net/i2p/router/web/WebAppStarter.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java index b216ed3ff6..7928ca791f 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java @@ -386,7 +386,7 @@ public class ConfigClientsHandler extends FormHandler { WebAppStarter.startWebApp(_context, s, app, path.getAbsolutePath()); addFormNoticeNoEscape(_t("WebApp") + " <a href=\"/" + app + "/\">" + _t(app) + "</a> " + _t("started") + '.'); } catch (Throwable e) { - addFormError(_t("Failed to start") + ' ' + _t(app) + " " + e + '.'); + addFormError(_t("Failed to start") + ' ' + _t(app) + ": " + e); _log.error("Failed to start webapp " + app, e); } return; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java index 18250d3a2d..4455945e83 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java @@ -48,7 +48,9 @@ public class WebAppStarter { /** - * adds and starts + * Adds and starts. + * Prior to 0.9.28, was not guaranteed to throw on failure. + * * @throws just about anything, caller would be wise to catch Throwable */ static void startWebApp(RouterContext ctx, ContextHandlerCollection server, @@ -57,6 +59,9 @@ public class WebAppStarter { WebAppContext wac = addWebApp(ctx, server, appName, warPath, tmpdir); //_log.debug("Loading war from: " + warPath); LocaleWebAppHandler.setInitParams(wac, INIT_PARAMS); + // default false, set to true so we get good logging, + // and the caller will know it failed + wac.setThrowUnavailableOnStartupException(true); wac.start(); } -- GitLab