diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-11-28 10:42:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-28 10:42:21 +0100 |
commit | 1e8faf0da37bc77af6785c77e128ddf8fe2083a5 (patch) | |
tree | 34313e58b3112c67d4b8c610a4c4b0a4f17a4ec1 | |
parent | 0e02838074469a89757b05f6b602939ca82ea0f2 (diff) | |
parent | 461456df1b3f2f1c3803b94d8c7996154d76db97 (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.java | 7 |
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()); |