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>
This commit is contained in:
Luca Milanesio 2018-07-07 23:09:36 +01:00 committed by Matthias Sohn
parent 4eea4ea508
commit eea9a7a0ba
1 changed files with 5 additions and 5 deletions

View File

@ -884,7 +884,7 @@ private static boolean isTag(Ref ref) {
}
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 @@ private boolean isDirectory(Path p) {
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 @@ private boolean delete(Path d) {
// 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;
}
/**