aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test/tst
diff options
context:
space:
mode:
authorMatthias Sohn <matthias.sohn@sap.com>2016-04-07 13:06:14 +0200
committerMatthias Sohn <matthias.sohn@sap.com>2016-04-07 13:06:23 +0200
commit27d06cb8d5763ea28008d90c3189e7ffb875a75d (patch)
tree4fb2536bb4463015bc7109fc9d0c4d008e6e71a1 /org.eclipse.jgit.test/tst
parentf56b9001fc61e50a94a4ae2f7dbb8d4bc9158e82 (diff)
parent7d2b3b9e25a430241a2d277e0cb222ad40cd0c2c (diff)
downloadjgit-27d06cb8d5763ea28008d90c3189e7ffb875a75d.tar.gz
jgit-27d06cb8d5763ea28008d90c3189e7ffb875a75d.zip
Merge branch 'master' into stable-4.3
* master: Remove repository from cache when it's closed Fix RefDirectory not closing resources Fix repository cache never closing repository Change-Id: I9dc9d017806cba25125f69b53812cc3e062ef975 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit.test/tst')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryCacheTest.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryCacheTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryCacheTest.java
index 6c6292558e..a1cec2d914 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryCacheTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryCacheTest.java
@@ -173,4 +173,39 @@ public class RepositoryCacheTest extends RepositoryTestCase {
assertEquals(0, RepositoryCache.getRegisteredKeys().size());
}
+ @Test
+ public void testRepositoryUsageCount() throws Exception {
+ FileKey loc = FileKey.exact(db.getDirectory(), db.getFS());
+ Repository d2 = RepositoryCache.open(loc);
+ assertEquals(1, d2.useCnt.get());
+ RepositoryCache.open(FileKey.exact(loc.getFile(), db.getFS()));
+ assertEquals(2, d2.useCnt.get());
+ d2.close();
+ assertEquals(1, d2.useCnt.get());
+ d2.close();
+ assertEquals(0, d2.useCnt.get());
+ }
+
+ @Test
+ public void testRepositoryUsageCountWithRegisteredRepository() {
+ assertEquals(1, ((Repository) db).useCnt.get());
+ RepositoryCache.register(db);
+ assertEquals(1, ((Repository) db).useCnt.get());
+ db.close();
+ assertEquals(0, ((Repository) db).useCnt.get());
+ }
+
+ public void testRepositoryUnregisteringWhenClosing() throws Exception {
+ FileKey loc = FileKey.exact(db.getDirectory(), db.getFS());
+ Repository d2 = RepositoryCache.open(loc);
+ assertEquals(1, d2.useCnt.get());
+ assertThat(RepositoryCache.getRegisteredKeys(),
+ hasItem(FileKey.exact(db.getDirectory(), db.getFS())));
+ assertEquals(1, RepositoryCache.getRegisteredKeys().size());
+
+ d2.close();
+
+ assertEquals(0, d2.useCnt.get());
+ assertEquals(0, RepositoryCache.getRegisteredKeys().size());
+ }
}