diff options
2 files changed, 6 insertions, 3 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/CompressedFileReference.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/CompressedFileReference.java index 2c08f5a7605..27ada7532f5 100644 --- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/CompressedFileReference.java +++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/CompressedFileReference.java @@ -34,7 +34,8 @@ public class CompressedFileReference { private static final int recurseDepth = 100; public static File compress(File baseDir, List<File> inputFiles, File outputFile) throws IOException { - ArchiveOutputStream archiveOutputStream = new TarArchiveOutputStream(new GZIPOutputStream(new FileOutputStream(outputFile))); + TarArchiveOutputStream archiveOutputStream = new TarArchiveOutputStream(new GZIPOutputStream(new FileOutputStream(outputFile))); + archiveOutputStream.setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX); createArchiveFile(archiveOutputStream, baseDir, inputFiles); return outputFile; } @@ -55,7 +56,8 @@ public class CompressedFileReference { public static byte[] compress(File baseDir, List<File> inputFiles) throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); - ArchiveOutputStream archiveOutputStream = new TarArchiveOutputStream(new GZIPOutputStream(out)); + TarArchiveOutputStream archiveOutputStream = new TarArchiveOutputStream(new GZIPOutputStream(out)); + archiveOutputStream.setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX); createArchiveFile(archiveOutputStream, baseDir, inputFiles); return out.toByteArray(); } diff --git a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java index 589fbe29abf..c8d9e0a3eda 100644 --- a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java +++ b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java @@ -128,7 +128,8 @@ public class FileDownloaderTest { File subdir = new File(tempPath.toFile(), "subdir"); File fooFile = new File(subdir, "foo"); IOUtils.writeFile(fooFile, "foo", false); - File barFile = new File(subdir, "bar"); + // Check that long file names work. (need to do TarArchiveOutPutStream.setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX)) for it to work); + File barFile = new File(subdir, "really-long-filename-over-100-bytes-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); IOUtils.writeFile(barFile, "bar", false); File tarFile = CompressedFileReference.compress(tempPath.toFile(), Arrays.asList(fooFile, barFile), new File(tempPath.toFile(), filename)); |