我已經使用JGit API創建了本地存儲庫。當所有的處理完成後,我想刪除本地回購(這是一個簡單的java.io.File)。但File.delete()操作失敗。我已致電乾淨關機JGit
org.eclipse.jgit.api.Git.close()
org.eclipse.jgit.lib.Repository.close()
是否需要進一步清理?我跑進
我已經使用JGit API創建了本地存儲庫。當所有的處理完成後,我想刪除本地回購(這是一個簡單的java.io.File)。但File.delete()操作失敗。我已致電乾淨關機JGit
org.eclipse.jgit.api.Git.close()
org.eclipse.jgit.lib.Repository.close()
是否需要進一步清理?我跑進
的一件事是,如果你使用Git.cloneRepository()()調用,您需要關閉返回的結果,即
Git result = Git.cloneRepository()
....
.call();
try {
...
} finally {
result.close();
}
this code snippet
此外,JGit中可能使文件句柄打開的某些位置在JGit 3.5.1之後的某個點處得到修復,請參閱this bug,因此如果您仍在使用JGit,可能還有助於確保使用最新版本的JGit較舊的一個。
非常感謝!關閉cloneRepository()返回的Git句柄解決了這個問題。我使用3.6.1,所以JGit版本不是問題 – qwerty
我會使用http://file-leak-detector.kohsuke.org/找出還有文件在哪裏打開。 – centic