diff options
author | Harald Musum <musum@yahooinc.com> | 2022-10-10 13:42:20 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2022-10-10 13:42:20 +0200 |
commit | 256f300b77983a2c9090e531ef99bdd7f7ce6123 (patch) | |
tree | b52f311ce313692ff0922f0522b84fec2f57ed65 | |
parent | 987e1014e2def189bf30d3e4bc8f719b21e99784 (diff) |
Use try-with-resources when getting file references in path
-rw-r--r-- | filedistribution/src/main/java/com/yahoo/vespa/filedistribution/maintenance/FileDistributionCleanup.java | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/maintenance/FileDistributionCleanup.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/maintenance/FileDistributionCleanup.java index de5ce9554b5..9c04e7253bb 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/maintenance/FileDistributionCleanup.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/maintenance/FileDistributionCleanup.java @@ -48,27 +48,28 @@ public class FileDistributionCleanup { fileReferencesInUse); } - public List<String> deleteUnusedFileReferences(File fileReferencesPath, + public List<String> deleteUnusedFileReferences(File fileReferencesDir, Duration keepFileReferencesDuration, int numberToAlwaysKeep, Set<String> fileReferencesInUse) { - log.log(Level.FINE, () -> "Keep unused file references for " + keepFileReferencesDuration); - if (!fileReferencesPath.isDirectory()) throw new RuntimeException(fileReferencesPath + " is not a directory"); - - log.log(Level.FINE, () -> "File references in use : " + fileReferencesInUse); + if (!fileReferencesDir.isDirectory()) throw new RuntimeException(fileReferencesDir + " is not a directory"); - Stream<String> candidates = sortedUnusedFileReferences(fileReferencesPath.toPath(), fileReferencesInUse, keepFileReferencesDuration); + log.log(Level.FINE, () -> "Keep unused file references for " + keepFileReferencesDuration + + ", file references in use : " + fileReferencesInUse); List<String> fileReferencesDeleted = new ArrayList<>(); - // Do not delete the newest ones - final AtomicInteger i = new AtomicInteger(0); - candidates.forEach(fileReference -> { - if (i.incrementAndGet() > numberToAlwaysKeep) { - fileReferencesDeleted.add(fileReference); - File file = new File(fileReferencesPath, fileReference); - if (!IOUtils.recursiveDeleteDir(file)) - log.log(Level.WARNING, "Could not delete " + file.getAbsolutePath()); - } - }); + Path fileReferencesPath = fileReferencesDir.toPath(); + try (Stream<String> candidates = sortedUnusedFileReferences(fileReferencesPath, fileReferencesInUse, keepFileReferencesDuration)) { + final AtomicInteger i = new AtomicInteger(0); + candidates.forEach(fileReference -> { + // Do not delete the newest ones + if (i.incrementAndGet() > numberToAlwaysKeep) { + fileReferencesDeleted.add(fileReference); + File file = new File(fileReferencesDir, fileReference); + if (!IOUtils.recursiveDeleteDir(file)) + log.log(Level.WARNING, "Could not delete " + file.getAbsolutePath()); + } + }); + } return fileReferencesDeleted; } |