summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-11-28 10:42:21 +0100
committerGitHub <noreply@github.com>2017-11-28 10:42:21 +0100
commit1e8faf0da37bc77af6785c77e128ddf8fe2083a5 (patch)
tree34313e58b3112c67d4b8c610a4c4b0a4f17a4ec1
parent0e02838074469a89757b05f6b602939ca82ea0f2 (diff)
parent461456df1b3f2f1c3803b94d8c7996154d76db97 (diff)
Merge pull request #4289 from vespa-engine/hmusum/write-to-temp-file-and-move
Write to temp file and move it afterwards
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
index 3999389d2c7..d8016416e0a 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
@@ -15,6 +15,7 @@ import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
@@ -107,10 +108,12 @@ public class FileReceiver {
File fileReferenceDir = new File(downloadDirectory, fileReference.value());
try {
+ File tempFile = new File(Files.createTempDirectory("downloaded").toFile(), filename);
+ Files.write(tempFile.toPath(), content);
Files.createDirectories(fileReferenceDir.toPath());
File file = new File(fileReferenceDir, filename);
- log.log(LogLevel.INFO, "Writing data to " + file.getAbsolutePath());
- Files.write(file.toPath(), content);
+ Files.move(tempFile.toPath(), file.toPath());
+ log.log(LogLevel.INFO, "Data written to " + file.getAbsolutePath());
downloader.completedDownloading(fileReference, file);
} catch (IOException e) {
log.log(LogLevel.ERROR, "Failed writing file: " + e.getMessage());