diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java index 4fc9582d3..4bb7c8f3d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java @@ -347,6 +347,7 @@ private void deleteOldPacks(Collection oldPacks, prunePreserved(); long packExpireDate = getPackExpireDate(); + List packFilesToPrune = new ArrayList<>(); oldPackLoop: for (Pack oldPack : oldPacks) { checkCancelled(); String oldName = oldPack.getPackName(); @@ -364,9 +365,10 @@ private void deleteOldPacks(Collection oldPacks, loosen(inserter, reader, oldPack, ids); } oldPack.close(); - prunePack(oldPack.getPackFile()); + packFilesToPrune.add(oldPack.getPackFile()); } } + packFilesToPrune.forEach(this::prunePack); // close the complete object database. That's my only chance to force // rescanning and to detect that certain pack files are now deleted.