Browse Source

Use java.nio to delete path to get detailed errors

Get the full IOException of the reason why a directory
cannot be removed during GC.

Change-Id: Ia555bce009fa48087a73d677f1ce3b9c0b685b57
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-4.7
Luca Milanesio 6 years ago committed by Matthias Sohn
parent
commit
eea9a7a0ba
  1. 10
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java

10
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java

@ -884,7 +884,7 @@ public class GC {
}
private void deleteEmptyRefsFolders() throws IOException {
Path refs = repo.getDirectory().toPath().resolve("refs"); //$NON-NLS-1$
Path refs = repo.getDirectory().toPath().resolve(Constants.R_REFS);
try (Stream<Path> entries = Files.list(refs)) {
Iterator<Path> iterator = entries.iterator();
while (iterator.hasNext()) {
@ -908,7 +908,7 @@ public class GC {
return p.toFile().isDirectory();
}
private boolean delete(Path d) {
private void delete(Path d) {
try {
// Avoid deleting a folder that was just created so that concurrent
// operations trying to create a reference are not impacted
@ -918,12 +918,12 @@ public class GC {
// If the folder is not empty, the delete operation will fail
// silently. This is a cheaper alternative to filtering the
// stream in the calling method.
return d.toFile().delete();
Files.delete(d);
}
} catch (IOException e) {
LOG.error(e.getMessage(), e);
LOG.error(MessageFormat.format(JGitText.get().cannotDeleteFile, d),
e);
}
return false;
}
/**

Loading…
Cancel
Save