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:
parent
4eea4ea508
commit
eea9a7a0ba
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue