浏览代码

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>
tags/v4.3.0.201604071810-r
Hugo Arès 8 年前
父节点
当前提交
53ea86cd7b
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3
    3
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java

+ 3
- 3
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java 查看文件

@@ -203,10 +203,10 @@ public class RefDirectory extends RefDatabase {

@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 @@ public class RefDirectory extends RefDatabase {
@Override
public void refresh() {
super.refresh();
rescan();
clearReferences();
}

@Override

正在加载...
取消
保存