diff options
author | Kristina Chodorow <kchodorow@google.com> | 2015-07-22 16:24:54 +0000 |
---|---|---|
committer | Laszlo Csomor <laszlocsomor@google.com> | 2015-07-23 11:00:21 +0000 |
commit | caf0191214bf3ff5ba472f0bc5b6e396c4acbdc0 (patch) | |
tree | 2ff176a0718da92f6994cb6e9323f3a38bd325a8 /src/main | |
parent | 53f5f3327c329cd036bb7cb63932e4bfcc248d9a (diff) |
Make tar.gz decompressor overwrite old versions of decompressed files
Otherwise Files.copy will throw an IOException when it tries to overwrite an
existing copy.
--
MOS_MIGRATED_REVID=98840310
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java | 4 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java | 7 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java index 81be03d587..9594d4aac8 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java @@ -31,6 +31,7 @@ import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import java.io.FileInputStream; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.StandardCopyOption; import java.util.zip.GZIPInputStream; import javax.annotation.Nullable; @@ -57,7 +58,8 @@ public class TarGzFunction implements SkyFunction { if (entry.isDirectory()) { FileSystemUtils.createDirectoryAndParents(filename); } else { - Files.copy(tarStream, filename.getPathFile().toPath()); + Files.copy(tarStream, filename.getPathFile().toPath(), + StandardCopyOption.REPLACE_EXISTING); filename.chmod(entry.getMode()); } } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java index 17116199e7..98a4e20282 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java @@ -30,6 +30,7 @@ import com.google.devtools.build.zip.ZipReader; import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.StandardCopyOption; import java.util.Collection; import javax.annotation.Nullable; @@ -94,11 +95,9 @@ public class ZipFunction implements SkyFunction { // this delete+rewrite is required or the build will error out if outputPath exists here. // The zip file is not re-unzipped when the WORKSPACE file is changed (because it is assumed // to be immutable) but is on server restart (which is a bug). - if (outputPath.exists()) { - outputPath.delete(); - } File outputFile = outputPath.getPathFile(); - Files.copy(reader.getInputStream(entry), outputFile.toPath()); + Files.copy(reader.getInputStream(entry), outputFile.toPath(), + StandardCopyOption.REPLACE_EXISTING); outputPath.chmod(permissions); } } |