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/RepositoryPage.java | 38 +++++++++++++++++++++++++-------------
1 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/src/com/gitblit/wicket/RepositoryPage.java b/src/com/gitblit/wicket/RepositoryPage.java
index ba3ca69..1f88075 100644
--- a/src/com/gitblit/wicket/RepositoryPage.java
+++ b/src/com/gitblit/wicket/RepositoryPage.java
@@ -1,5 +1,6 @@
package com.gitblit.wicket;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -46,10 +47,10 @@
public abstract class RepositoryPage extends BasePage {
protected final String repositoryName;
- protected final String objectId;
+ protected final String objectId;
private transient Repository r = null;
-
+
private RepositoryModel m = null;
private final Logger logger = LoggerFactory.getLogger(RepositoryPage.class);
@@ -70,14 +71,17 @@
public RepositoryPage(PageParameters params) {
super(params);
- if (!params.containsKey("r")) {
- error("Repository not specified!");
- redirectToInterceptPage(new RepositoriesPage());
- }
repositoryName = WicketUtils.getRepositoryName(params);
objectId = WicketUtils.getObject(params);
+ if (StringUtils.isEmpty(repositoryName)) {
+ error(MessageFormat.format("Repository not specified for {0}!", getPageName()), true);
+ }
+
Repository r = getRepository();
+ if (r == null) {
+ error(MessageFormat.format("Failed to open repository {0} for {1}!", repositoryName, getPageName()), true);
+ }
// standard page links
add(new BookmarkablePageLink<Void>("summary", SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
@@ -86,7 +90,7 @@
add(new BookmarkablePageLink<Void>("tags", TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newRepositoryParameter(repositoryName)));
- // per-repository extra page links
+ // per-repository extra page links
List<String> extraPageLinks = new ArrayList<String>();
// Conditionally add tickets page
@@ -115,7 +119,7 @@
}
};
add(extrasView);
-
+
// disable current page
disablePageLink(getPageName());
@@ -123,7 +127,7 @@
SearchForm searchForm = new SearchForm("searchForm", repositoryName);
add(searchForm);
searchForm.setTranslatedAttributes();
-
+
// set stateless page preference
setStatelessHint(true);
}
@@ -154,12 +158,20 @@
}
return r;
}
-
+
protected RepositoryModel getRepositoryModel() {
if (m == null) {
m = GitBlit.self().getRepositoryModel(repositoryName);
}
return m;
+ }
+
+ protected RevCommit getCommit() {
+ RevCommit commit = JGitUtils.getCommit(r, objectId);
+ if (commit == null) {
+ error(MessageFormat.format("Failed to find commit \"{0}\" in {1} for {2} page!", objectId, repositoryName, getPageName()), true);
+ }
+ return commit;
}
protected void addRefs(Repository r, RevCommit c) {
@@ -303,11 +315,11 @@
TextField<String> searchBox = new TextField<String>("searchBox", searchBoxModel);
add(searchBox);
}
-
- void setTranslatedAttributes() {
+
+ void setTranslatedAttributes() {
WicketUtils.setHtmlTooltip(get("searchType"), getString("gb.searchTypeTooltip"));
WicketUtils.setHtmlTooltip(get("searchBox"), getString("gb.searchTooltip"));
- WicketUtils.setInputPlaceholder(get("searchBox"), getString("gb.search"));
+ WicketUtils.setInputPlaceholder(get("searchBox"), getString("gb.search"));
}
@Override
--
Gitblit v1.9.1