Uploaded image for project: 'Commons Compress'
  1. Commons Compress
  2. COMPRESS-7

Creating TAR archive of an 8 GB file causes IOException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • None
    • None
    • Win xp pro sp2; JDK 1.5.0_07

    Description

      Yesterday I reported a bug with extraction of TAR archives:
      https://issues.apache.org/jira/browse/SANDBOX-168

      Today I found that when I tried to creat a TAR archive of a file that is exactly 8 GB, that is,
      (8L * 1024L * 1024L * 1024L) - 1
      that it failed with the following strange error:

      Exception in thread "main" java.io.IOException: request to write '32768' bytes exceeds size in header of '-1' bytes
      at org.apache.commons.compress.archivers.tar.TarOutputStream.write(TarOutputStream.java:341)
      at bb.io.StreamUtil.transfer(StreamUtil.java:312)
      at bb.io.StreamUtil.transfer(StreamUtil.java:290)
      at bb.io.TarUtil.writeFileData(TarUtil.java:404)
      at bb.io.TarUtil.archive(TarUtil.java:382)
      at bb.io.TarUtil.archive(TarUtil.java:334)
      at bb.io.TarUtil$Test.test_archive_extract_fileLengthLimit(TarUtil.java:610)
      at bb.io.TarUtil$Test.main(TarUtil.java:542)

      The code that I used to try and create the TAR archive was the same described in that previous bug report, so I will not repeat it here.

      I was doing this in an attempt to discern if the org.apache.commons.compress TAR code has any file size limits, since classic TAR is limited to 8 BG files but org.apache.commons.compress supports GNU TAR long path names, so maybe it has no file size limits either. (There appears to be no documentation about this in the TAR code.)

      What is strange is that the code first DID apparently succeed in TARing a 10 GB file, albeit, when I tried to see if a third party piece of software (7-zip) would extract it, that program objected saying that it did not support the TAR format type encpuntered in the file.

      Since I need to use a file size limit that is consistent with other programs, I then tried to TAR a file of exactly 8 GB in size. This is when I encountered the above error.

      Attachments

        Activity

          People

            Unassigned Unassigned
            bbatman Sam Smith
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: