From 9727511ad07db2c332f164fe399108768457bdae Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sun, 13 Jan 2013 17:28:18 -0500
Subject: [PATCH] Null checks when generating a fork network (issue-187)

---
 src/com/gitblit/GitBlit.java |   14 ++++++++++++--
 docs/04_releases.mkd         |    1 +
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/docs/04_releases.mkd b/docs/04_releases.mkd
index 3d17a9b..af702f2 100644
--- a/docs/04_releases.mkd
+++ b/docs/04_releases.mkd
@@ -7,6 +7,7 @@
 #### fixes
 
 - Fixed nullpointer on recursively calculating folder sizes when there is a named pipe or symlink in the hierarchy
+- Added nullchecking when concurrently forking a repository and trying to display it's fork network (issue-187)
 - Fixed bug where permission changes were not visible in the web ui to a logged-in user until the user logged-out and then logged back in again (issue-186)
 - Fixed nullpointer on creating a repository with mixed case (issue 185)
 - Fixed nullpointer when using web.allowForking = true && git.cacheRepositoryList = false (issue 182)
diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index f417b3e..e3ecebd 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -1872,11 +1872,16 @@
 	
 	private ForkModel getForkModelFromCache(String repository) {
 		RepositoryModel model = repositoryListCache.get(repository.toLowerCase());
+		if (model == null) {
+			return null;
+		}
 		ForkModel fork = new ForkModel(model);
 		if (!ArrayUtils.isEmpty(model.forks)) {
 			for (String aFork : model.forks) {
 				ForkModel fm = getForkModelFromCache(aFork);
-				fork.forks.add(fm);
+				if (fm != null) {
+					fork.forks.add(fm);
+				}
 			}
 		}
 		return fork;
@@ -1884,11 +1889,16 @@
 	
 	private ForkModel getForkModel(String repository) {
 		RepositoryModel model = getRepositoryModel(repository.toLowerCase());
+		if (model == null) {
+			return null;
+		}
 		ForkModel fork = new ForkModel(model);
 		if (!ArrayUtils.isEmpty(model.forks)) {
 			for (String aFork : model.forks) {
 				ForkModel fm = getForkModel(aFork);
-				fork.forks.add(fm);
+				if (fm != null) {
+					fork.forks.add(fm);
+				}
 			}
 		}
 		return fork;

--
Gitblit v1.9.1