aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-11-14 13:20:23 +0100
committerHarald Musum <musum@yahooinc.com>2022-11-14 13:20:23 +0100
commit0e513c5bf3b048c901293b9b53c04847f103dafa (patch)
tree29b997defd4cc7b4f5cb7328706bc72a175014f7 /configserver
parent9349c2dc70147679bd0fa919f91f0d7fe53f1c97 (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.java7
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());
}
}