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 b216ed3ff684a388514cf3bab15fdcf4a7588b7c..7928ca791fc45a537de64b18f3bf4e95144f5fbd 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 18250d3a2dbac5b38fc2e1d4119a39a798d7786e..4455945e83f99ce71626bd6c9f9d4f1b4903061e 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(); }