[ https://issues.apache.org/jira/browse/COMPRESS-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13106082#comment-13106082 ]
Sebb commented on COMPRESS-157: ------------------------------- Are you sure the class is in Compress? I can only find BZip2CompressorInputStream which does not have the problem. Commons VFS does have a file called CBZip2InputStream, and there is one instance of casting read() to a char: {code} 619 while (bsLive < 1) 620 { 621 char ch = 0; 622 try 623 { 624 ch = (char) inputStream.read(); 625 } 626 catch (IOException e) 627 { 628 compressedStreamEOF(); 629 } 630 631 bsBuff = (bsBuff << 8) | (ch & 0xff); 632 bsLive += 8; 633 } {code} That does look wrong. > Wrong EOF detection in CBZip2InputStream > ---------------------------------------- > > Key: COMPRESS-157 > URL: https://issues.apache.org/jira/browse/COMPRESS-157 > Project: Commons Compress > Issue Type: Bug > Reporter: Jan > Priority: Minor > > The following snippet form CBZip2InputStream does a wrong EOF check. The char > 'thech' will never be equal to the integer '-1'. You have to check for > #read() returning -1 before casting to char. > I found the bug in > http://svn.wikimedia.org/svnroot/mediawiki/trunk/mwdumper/src/org/apache/commons/compress/bzip2/ > not in your TRUNK. > {noformat} > int zzi; > char thech = 0; > try > { > thech = (char)m_input.read(); > } > catch( IOException e ) > { > compressedStreamEOF(); > } > if( thech == -1 ) //HERE > { > compressedStreamEOF(); > } > {noformat} -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira