diff options
author | Harald Musum <musum@oath.com> | 2017-11-28 08:28:34 +0100 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2017-11-28 08:28:34 +0100 |
commit | 461456df1b3f2f1c3803b94d8c7996154d76db97 (patch) | |
tree | 2088508710fd7a799ffa9c6499affdfc989b37d1 | |
parent | 775cbe184dcf306b38091e07d04f798d77f8873d (diff) |
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()); |