Fix RefDirectory not closing resources

When repositories are opened using the RepositoryCache, they are kept in
memory and when the repository usage counter reaches 0, the
Repository.close method is called which then calls close method on its
reference and object databases.

The problem is that RefDirectory.close method was a no-op and the
reference database was kept in memory. This problem is only happening
when opening a repository using the RepositoryCache because it never
evicts repositories, it's just calling the close method.

Change-Id: Iacb961de8e8b1f5b37824bf0d1a4caf4c6f1233f
Signed-off-by: Hugo Arès <hugo.ares@ericsson.com>
This commit is contained in:
Hugo Arès 2015-09-08 09:21:31 -04:00 committed by Matthias Sohn
parent 83235432e7
commit 53ea86cd7b
1 changed files with 3 additions and 3 deletions

View File

@ -203,10 +203,10 @@ public void create() throws IOException {
@Override
public void close() {
// We have no resources to close.
clearReferences();
}
void rescan() {
private void clearReferences() {
looseRefs.set(RefList.<LooseRef> emptyList());
packedRefs.set(PackedRefList.NO_PACKED_REFS);
}
@ -214,7 +214,7 @@ void rescan() {
@Override
public void refresh() {
super.refresh();
rescan();
clearReferences();
}
@Override