diff options
author | Harald Musum <musum@yahooinc.com> | 2022-11-14 13:20:23 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2022-11-14 13:20:23 +0100 |
commit | 0e513c5bf3b048c901293b9b53c04847f103dafa (patch) | |
tree | 29b997defd4cc7b4f5cb7328706bc72a175014f7 /configserver | |
parent | 9349c2dc70147679bd0fa919f91f0d7fe53f1c97 (diff) |
Make sure to always delete temp dir
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDirectory.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDirectory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDirectory.java index 432d72ac497..5cc272ca197 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDirectory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDirectory.java @@ -19,6 +19,8 @@ import java.nio.file.attribute.BasicFileAttributes; import java.util.logging.Level; import java.util.logging.Logger; +import static com.yahoo.yolean.Exceptions.uncheck; + public class FileDirectory { private static final Logger log = Logger.getLogger(FileDirectory.class.getName()); @@ -127,10 +129,10 @@ public class FileDirectory { // Pre-condition: Destination dir does not exist private FileReference addFile(File source, FileReference reference) { ensureRootExist(); + Path tempDestinationDir = uncheck(() -> Files.createTempDirectory(root.toPath(), "writing")); try { logfileInfo(source); File destinationDir = destinationDir(reference); - Path tempDestinationDir = Files.createTempDirectory(root.toPath(), "writing"); File destination = new File(tempDestinationDir.toFile(), source.getName()); if (!destinationDir.exists()) { destinationDir.mkdir(); @@ -150,10 +152,11 @@ public class FileDirectory { IOUtils.copyDirectory(tempDestinationDir.toFile(), destinationDir, -1); } } - IOUtils.recursiveDeleteDir(tempDestinationDir.toFile()); return reference; } catch (IOException e) { throw new IllegalArgumentException(e); + } finally { + IOUtils.recursiveDeleteDir(tempDestinationDir.toFile()); } } |