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