Commons Compress
  1. Commons Compress
  2. COMPRESS-3

COMPRESS-REDESIGN: Handle JarArchiveInputStream null getNextEntry() gracefully

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:

      N/A

      Description

      When the method JarArchiveInputStream.getNextEntry() is called after the final archive entry was already returned, an Exception is thrown. This is due to the request to the super class ZipArchiveInputStream.getNextEntry() returning null which denotes the archive is at the end. However that null is used to attempt to try to create a new JarArchiveEntry(null) instance. It is here where the exception is thrown. I suggest doing a quick null check then return null if the archive has been fully traversed.

      1. JarArchiveInputStream.patch
        0.6 kB
        Tim Pinet
      2. JarTestCase.patch
        1.0 kB
        Tim Pinet

        Activity

        Hide
        Tim Pinet added a comment -

        JarArchiveInputStream.patch: recommended fix for JarArchiveInputStream.getNextEntry() to return null instead of throwing an Exception at the end of an archive.

        Show
        Tim Pinet added a comment - JarArchiveInputStream.patch: recommended fix for JarArchiveInputStream.getNextEntry() to return null instead of throwing an Exception at the end of an archive.
        Hide
        Tim Pinet added a comment -

        JarTestCase.patch: test case to traverse a Jar file to the end of the archive and ensure that no Exception is thrown. Note: this patch contains code from bug SANDBOX-258 which uses a call to ArchiveEntry.isDirectory().

        Show
        Tim Pinet added a comment - JarTestCase.patch: test case to traverse a Jar file to the end of the archive and ensure that no Exception is thrown. Note: this patch contains code from bug SANDBOX-258 which uses a call to ArchiveEntry.isDirectory().

          People

          • Assignee:
            Torsten Curdt
            Reporter:
            Tim Pinet
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 10h
              10h
              Remaining:
              Remaining Estimate - 10h
              10h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development