I tried the current trunk of compress and tried the BZIP2-Streams. There are the following inconsitenceis now:
a) BZIP InputStream checks that the "BZ" header is available in the File (using this magicChar method)
b) BZIP OutputStream does not add the "BZ" header (it is commented out, saying that the caller does this)
c) The Javadocs of the input stream say, you should skip the header, which is wrong.
d) the tests do not find these errors, as the test only compressed a file, but does not try to decompress it or check its contents
Before the redesign commit, the handling of headers was consistent (both streams used it). The BZ Headers should be added to the Streams, as this would be consistent with GZIP (where the headers are automatically added, too).