From bc9d4a0f2266e5ac1a018f0b691c76d53479b9e5 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 29 Apr 2011 20:46:44 -0400 Subject: [PATCH] Working on error handling. --- src/com/gitblit/wicket/BasePage.java | 25 ++++++++++++++++++++----- 1 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/wicket/BasePage.java b/src/com/gitblit/wicket/BasePage.java index 8daab44..6125f2a 100644 --- a/src/com/gitblit/wicket/BasePage.java +++ b/src/com/gitblit/wicket/BasePage.java @@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletRequest; import org.apache.wicket.PageParameters; +import org.apache.wicket.RestartResponseAtInterceptPageException; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.FeedbackPanel; @@ -50,14 +51,13 @@ add(new FeedbackPanel("feedback")); // footer - if (GitBlit.self().settings().getBoolean(Keys.web.authenticateViewPages, true) - || GitBlit.self().settings().getBoolean(Keys.web.authenticateAdminPages, true)) { + if (GitBlit.self().settings().getBoolean(Keys.web.authenticateViewPages, true) || GitBlit.self().settings().getBoolean(Keys.web.authenticateAdminPages, true)) { if (GitBlitWebSession.get().isLoggedIn()) { // logout add(new LinkPanel("userPanel", null, getString("gb.logout") + " " + GitBlitWebSession.get().getUser().toString(), LogoutPage.class)); } else { // login - add(new LinkPanel("userPanel", null, getString("gb.login"), LoginPage.class)); + add(new LinkPanel("userPanel", null, getString("gb.login"), LoginPage.class)); } } else { add(new Label("userPanel", "")); @@ -78,8 +78,23 @@ return req.getServerName(); } - public void error(String message, Throwable t) { - super.error(message); + public void error(String message, boolean redirect) { + logger.error(message); + if (redirect) { + GitBlitWebSession.get().cacheErrorMessage(message); + throw new RestartResponseAtInterceptPageException(getApplication().getHomePage()); + } else { + super.error(message); + } + } + + public void error(String message, Throwable t, boolean redirect) { logger.error(message, t); + if (redirect) { + GitBlitWebSession.get().cacheErrorMessage(message); + throw new RestartResponseAtInterceptPageException(getApplication().getHomePage()); + } else { + super.error(message); + } } } -- Gitblit v1.9.1