diff --git a/src/main/org/apache/tools/tar/TarOutputStream.java b/src/main/org/apache/tools/tar/TarOutputStream.java index 0f4eae316..af8ada6bd 100644 --- a/src/main/org/apache/tools/tar/TarOutputStream.java +++ b/src/main/org/apache/tools/tar/TarOutputStream.java @@ -485,14 +485,14 @@ public class TarOutputStream extends FilterOutputStream { void writePaxHeaders(String entryName, Map headers) throws IOException { String name = "./PaxHeaders.X/" + stripTo7Bits(entryName); + if (name.length() >= TarConstants.NAMELEN) { + name = name.substring(0, TarConstants.NAMELEN - 1); + } while (name.endsWith("/")) { // TarEntry's constructor would think this is a directory // and not allow any data to be written name = name.substring(0, name.length() - 1); } - if (name.length() >= TarConstants.NAMELEN) { - name = name.substring(0, TarConstants.NAMELEN - 1); - } TarEntry pex = new TarEntry(name, TarConstants.LF_PAX_EXTENDED_HEADER_LC);