From 1078f80f6999d3a94ca47815a1d9fec471766b1d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 10 Jun 2013 18:43:34 -0400 Subject: [PATCH] Improve error handling within a repository page (issue-252) --- src/main/java/com/gitblit/wicket/pages/BasePage.java | 32 +++++++++++++++++++------------- 1 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.java b/src/main/java/com/gitblit/wicket/pages/BasePage.java index 192f012..71713cd 100644 --- a/src/main/java/com/gitblit/wicket/pages/BasePage.java +++ b/src/main/java/com/gitblit/wicket/pages/BasePage.java @@ -32,9 +32,9 @@ import javax.servlet.http.HttpServletRequest; import org.apache.wicket.Application; +import org.apache.wicket.Page; import org.apache.wicket.PageParameters; import org.apache.wicket.RedirectToUrlException; -import org.apache.wicket.RestartResponseException; import org.apache.wicket.markup.html.CSSPackageResource; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.ExternalLink; @@ -333,22 +333,28 @@ } public void error(String message, boolean redirect) { - logger.error(message + " for " + GitBlitWebSession.get().getUsername()); - if (redirect) { - GitBlitWebSession.get().cacheErrorMessage(message); - String relativeUrl = urlFor(RepositoriesPage.class, null).toString(); - String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl); - throw new RedirectToUrlException(absoluteUrl); - } else { - super.error(message); - } + error(message, null, redirect ? getApplication().getHomePage() : null); } public void error(String message, Throwable t, boolean redirect) { - logger.error(message, t); - if (redirect) { + error(message, t, getApplication().getHomePage()); + } + + public void error(String message, Throwable t, Class<? extends Page> toPage) { + error(message, t, toPage, null); + } + + public void error(String message, Throwable t, Class<? extends Page> toPage, PageParameters params) { + if (t == null) { + logger.error(message + " for " + GitBlitWebSession.get().getUsername()); + } else { + logger.error(message + " for " + GitBlitWebSession.get().getUsername(), t); + } + if (toPage != null) { GitBlitWebSession.get().cacheErrorMessage(message); - throw new RestartResponseException(getApplication().getHomePage()); + String relativeUrl = urlFor(toPage, params).toString(); + String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl); + throw new RedirectToUrlException(absoluteUrl); } else { super.error(message); } -- Gitblit v1.9.1