commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ingo Rockel (JIRA)" <j...@apache.org>
Subject [jira] Commented: (SANDBOX-286) BZip2CompressorInputStream doesn't work if wrapped into InputStreamReader
Date Tue, 24 Feb 2009 09:36:01 GMT

    [ https://issues.apache.org/jira/browse/SANDBOX-286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12676228#action_12676228
] 

Ingo Rockel commented on SANDBOX-286:
-------------------------------------

The Testcase looks like this:

        CompressorInputStream in = new CompressorStreamFactory().createCompressorInputStream("bzip2",
new FileInputStream("test.bz2"));
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));

        String testString
        while(reader.ready()) {
              testString = reader.readLine();
        }
        reader.close();

This code simply reads anything, because InputStreamReader calls "available()" on the underlying
stream before reading data and the BZip2CompressorInputStream doesn't implement it, it only
has the default method from InputStream, which returns "0".

My hack works fine for me here, but because of the block orientation of the stream simply
calling super.available() might fail in some cases.

> BZip2CompressorInputStream doesn't work if wrapped into InputStreamReader
> -------------------------------------------------------------------------
>
>                 Key: SANDBOX-286
>                 URL: https://issues.apache.org/jira/browse/SANDBOX-286
>             Project: Commons Sandbox
>          Issue Type: Bug
>          Components: Compress
>    Affects Versions: Nightly Builds
>         Environment: Unix
>            Reporter: Ingo Rockel
>
> The BZip2CompressorInputStream doesn't work if wrapped into InputStreamReader because
it doesn't implement "public int available()" from InputStream.
> Adding the following method to BZip2CompressorInputStream fixes the problem:
>     public int available() throws IOException {
>         return(in.available());
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message