Commons Compress
  1. Commons Compress
  2. COMPRESS-14

[compress] CBZip2InputStream doesn't close the source stream

    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:

      Operating System: All
      Platform: All

      Description

      Hi there,

      I used compress component in sandbox via VFS component. And When I accessed
      a tbz2 file via VFS, I could not remove the tbz2 file after closing stream.
      I checked some codes and I found the reason of the phenomenon.
      When a client program accessed a tbz2 file, the code uses TarFileSystem
      ( org.apache.commons.vfs.provider.tar.TarFileSystem ). TarFileSystem uses
      CBZip2InputStream via Bzip2FileObject.wrapInputStream and the source
      stream is created from FileInputStream like this:

      class TarFileSystem

      ... snip ...

      protected TarInputStream createTarFile(final File file) throws
      FileSystemException

      ... snip ...

      else if ("tbz2".equalsIgnoreCase(getRootName().getScheme()))

      { return new TarInputStream(Bzip2FileObject.wrapInputStream( file.getAbsolutePath(), new FileInputStream(file))); }

      I think CBZip2InputStream should close source stream like BufferedInputStream
      and FilteredInputStream.

      Could you please consider to close source stream in CBZip2InputStream#close() ?

      Thanks,

      Hiroki

        Activity

          People

          • Assignee:
            Unassigned
            Reporter:
            Hiroki Ata
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development