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

Loading…
Cancel
Save