From 3811378e0ec542e1ec3139406bbf0fc395e9d3df Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 29 Nov 2013 12:02:58 -0500
Subject: [PATCH] Invalidate all cached repository data on "clear cache" (issue-346)

---
 src/main/java/com/gitblit/utils/ObjectCache.java         |    4 ++++
 releases.moxie                                           |    1 +
 src/main/java/com/gitblit/manager/RepositoryManager.java |    2 ++
 3 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/releases.moxie b/releases.moxie
index c2ad4fc..3a1b296 100644
--- a/releases.moxie
+++ b/releases.moxie
@@ -13,6 +13,7 @@
 	- Fixed support for implied SSH urls in web.otherUrls (issue-311)
 	- Bind LDAP connection after establishing TLS initialization (issue-343)
 	- Fixed NPE when attempting to add a permission without a registrant (issue-344)
+	- Invalidate all cached repository data on "clear cache" (issue-346)
 	- Fix potential NPE on removing uncached repository from cache
 	- Ignore the default contents of .git/description file
 	- Fix error on generating activity page when there is no activity
diff --git a/src/main/java/com/gitblit/manager/RepositoryManager.java b/src/main/java/com/gitblit/manager/RepositoryManager.java
index 438d885..0a3f663 100644
--- a/src/main/java/com/gitblit/manager/RepositoryManager.java
+++ b/src/main/java/com/gitblit/manager/RepositoryManager.java
@@ -457,6 +457,8 @@
 	public void resetRepositoryListCache() {
 		logger.info("Repository cache manually reset");
 		repositoryListCache.clear();
+		repositorySizeCache.clear();
+		repositoryMetricsCache.clear();
 	}
 
 	/**
diff --git a/src/main/java/com/gitblit/utils/ObjectCache.java b/src/main/java/com/gitblit/utils/ObjectCache.java
index 48a9668..e75d4b8 100644
--- a/src/main/java/com/gitblit/utils/ObjectCache.java
+++ b/src/main/java/com/gitblit/utils/ObjectCache.java
@@ -54,6 +54,10 @@
 		}
 	}
 
+	public void clear() {
+		cache.clear();
+	}
+
 	public boolean hasCurrent(String name, Date date) {
 		return cache.containsKey(name) && cache.get(name).date.compareTo(date) == 0;
 	}

--
Gitblit v1.9.1