From b2d7f418bf289e5fa6149ac1b5744cfb03b60dea Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 23 Sep 2013 10:55:19 -0400
Subject: [PATCH] Eliminate redundant read() and use accessor instead of direct cache access

---
 src/main/java/com/gitblit/wicket/panels/RepositoryUrlPanel.java |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/panels/RepositoryUrlPanel.java b/src/main/java/com/gitblit/wicket/panels/RepositoryUrlPanel.java
index 3711ca9..0dae3cf 100644
--- a/src/main/java/com/gitblit/wicket/panels/RepositoryUrlPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/RepositoryUrlPanel.java
@@ -85,7 +85,7 @@
 		// grab primary url from the top of the list
 		primaryUrl = repositoryUrls.size() == 0 ? null : repositoryUrls.get(0);
 
-		boolean canClone = ((primaryUrl.permission == null) || primaryUrl.permission.atLeast(AccessPermission.CLONE));
+		boolean canClone = primaryUrl != null && ((primaryUrl.permission == null) || primaryUrl.permission.atLeast(AccessPermission.CLONE));
 
 		if (repositoryUrls.size() == 0 || !canClone) {
 			// no urls, nothing to show.
@@ -365,7 +365,15 @@
 		if (!urlPermissionsMap.containsKey(repoUrl.url)) {
 			String note;
 			if (repoUrl.isExternal()) {
-				String protocol = repoUrl.url.substring(0, repoUrl.url.indexOf("://"));
+				String protocol;
+				int protocolIndex = repoUrl.url.indexOf("://");
+				if (protocolIndex > -1) {
+					// explicit protocol specified
+					protocol = repoUrl.url.substring(0, protocolIndex);
+				} else {
+					// implicit SSH url
+					protocol = "ssh";
+				}
 				note = MessageFormat.format(getString("gb.externalPermissions"), protocol);			
 			} else {
 				note = null;			

--
Gitblit v1.9.1