diff options
author | Matthias Sohn <matthias.sohn@sap.com> | 2016-04-07 13:06:14 +0200 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2016-04-07 13:06:23 +0200 |
commit | 27d06cb8d5763ea28008d90c3189e7ffb875a75d (patch) | |
tree | 4fb2536bb4463015bc7109fc9d0c4d008e6e71a1 /org.eclipse.jgit.test/tst | |
parent | f56b9001fc61e50a94a4ae2f7dbb8d4bc9158e82 (diff) | |
parent | 7d2b3b9e25a430241a2d277e0cb222ad40cd0c2c (diff) | |
download | jgit-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.java | 35 |
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()); + } } |