Unconditionally close repository in unregisterAndCloseRepository Repository.close() method is used when reference counting and expiration needs to be honored. The RepositoryCache.unregisterAndCloseRepository method should close the repository unconditionally. This is also indicated from its javadoc. Change-Id: I19392d1eaa17f27ae44b55eea49dcff05a52f298
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java index 29ef084..2e0ed16 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java
@@ -305,11 +305,9 @@ private boolean isExpired(Repository db) { private void unregisterAndCloseRepository(final Key location, Repository db) { synchronized (lockFor(location)) { - if (isExpired(db)) { - Repository oldDb = unregisterRepository(location); - if (oldDb != null) { - oldDb.close(); - } + Repository oldDb = unregisterRepository(location); + if (oldDb != null) { + oldDb.doClose(); } } }