Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.6, 1.7
    • Fix Version/s: 1.8
    • Component/s: Archivers
    • Labels:

      Description

      I created an archiv with 7zip 9.20 containing the 7-ZipPortable directory. Already tried to use a copy of the directory, so

      the program does not archive itself. The standard setting where used:
      Compression level: normal
      Compression method: lzma2
      Dictionary size: 16 MB
      Word size: 32
      Solid Block size: 2 GB

      Small amount of code:
      //Open archive
      SevenZFile input = new SevenZFile(new File(arcName));

      SevenZArchiveEntry entry;
      while((entry = input.getNextEntry()) != null)

      {...}

      The exception thrown:

      java.io.IOException: Unsupported compression method [3, 3, 1, 3]
      at org.apache.commons.compress.archivers.sevenz.Coders.addDecoder(Coders.java:51)
      at org.apache.commons.compress.archivers.sevenz.SevenZFile.buildDecoderStack(SevenZFile.java:849)
      at org.apache.commons.compress.archivers.sevenz.SevenZFile.buildDecodingStream(SevenZFile.java:817)
      at org.apache.commons.compress.archivers.sevenz.SevenZFile.getNextEntry(SevenZFile.java:150)
      at compress.SevenZipError.main(SevenZipError.java:36)

      1. 7-ZipPortableCopy.7z
        1.96 MB
        Stefan Mueller

        Activity

        Hide
        Stefan Bodewig added a comment -

        code finalized with svn revision 1573526

        Note there is a bug in XZ that breaks reading archives using BCJ - this will be fixed with the next release of XZ for Java.

        Show
        Stefan Bodewig added a comment - code finalized with svn revision 1573526 Note there is a bug in XZ that breaks reading archives using BCJ - this will be fixed with the next release of XZ for Java.
        Hide
        Stefan Bodewig added a comment -

        x86 BCJ is in with svn revision 1572827

        I still need to add a few tests and look into 7z's code to see whether it might set any options in coder properties. Also XZ for Java supports some of the other BCJ platforms as well as Delta that I may want to wire up as well.

        Show
        Stefan Bodewig added a comment - x86 BCJ is in with svn revision 1572827 I still need to add a few tests and look into 7z's code to see whether it might set any options in coder properties. Also XZ for Java supports some of the other BCJ platforms as well as Delta that I may want to wire up as well.
        Hide
        Stefan Bodewig added a comment -

        probably "don't support at all" - I think it is a combination of http://tukaani.org/xz/xz-javadoc/org/tukaani/xz/X86Options.html with LZMA2.

        I'll change the description accordingly and mark this as an enhancement request.

        Show
        Stefan Bodewig added a comment - probably "don't support at all" - I think it is a combination of http://tukaani.org/xz/xz-javadoc/org/tukaani/xz/X86Options.html with LZMA2. I'll change the description accordingly and mark this as an enhancement request.
        Hide
        Stefan Bodewig added a comment -

        This is what command line 7z on Linux says:

        Path = 7-ZipPortableCopy.7z
        Type = 7z
        Method = LZMA2 BCJ
        Solid = +
        Blocks = 2
        Physical Size = 2051662
        Headers Size = 2428

        so it seems to be using a variant of LZMA2 we either don't support at all or don't know that we support it.

        Show
        Stefan Bodewig added a comment - This is what command line 7z on Linux says: Path = 7-ZipPortableCopy.7z Type = 7z Method = LZMA2 BCJ Solid = + Blocks = 2 Physical Size = 2051662 Headers Size = 2428 so it seems to be using a variant of LZMA2 we either don't support at all or don't know that we support it.
        Hide
        Stefan Mueller added a comment -

        I attached the archive with the problem.
        Thank you for helping so fast.

        Show
        Stefan Mueller added a comment - I attached the archive with the problem. Thank you for helping so fast.
        Hide
        Stefan Bodewig added a comment -

        unless there is a bug in our code - which is certainly possible - then the archive uses 7z/Branch/x86/BCJ - something Compress doesn't support, yet.

        Can you provide an example archive so we can have a look at it to see whether our parsing is correct?

        Show
        Stefan Bodewig added a comment - unless there is a bug in our code - which is certainly possible - then the archive uses 7z/Branch/x86/BCJ - something Compress doesn't support, yet. Can you provide an example archive so we can have a look at it to see whether our parsing is correct?

          People

          • Assignee:
            Unassigned
            Reporter:
            Stefan Mueller
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development