Buggy code:
public class SevenZFile implements Closeable { static final int SIGNATURE_HEADER_SIZE = 32 ; private RandomAccessFile file ; private final Archive archive ; private int currentEntryIndex = - 1 ; private int currentFolderIndex = - 1 ; private InputStream currentFolderInputStream = null ; private InputStream currentEntryInputStream = null ; private byte [ ] password ; static final byte [ ] sevenZSignature = new byte [ ] { ( ( byte ) ( '7' ) ) , ( ( byte ) ( 'z' ) ) , ( ( byte ) ( 188 ) ) , ( ( byte ) ( 175 ) ) , ( ( byte ) ( 39 ) ) , ( ( byte ) ( 28 ) ) } ; public SevenZFile ( final File filename , final byte [ ] password ) throws IOException { } public SevenZFile ( final File filename ) throws IOException { } public void close ( ) throws IOException { } public SevenZArchiveEntry getNextEntry ( ) throws IOException { } private Archive readHeaders ( byte [ ] password ) throws IOException { } private StartHeader readStartHeader ( final long startHeaderCrc ) throws IOException { } private void readHeader ( final DataInput header , final Archive archive ) throws IOException { } private void readArchiveProperties ( final DataInput input ) throws IOException { } private DataInputStream readEncodedHeader ( final DataInputStream header , final Archive archive , byte [ ] password ) throws IOException { } private void readStreamsInfo ( final DataInput header , final Archive archive ) throws IOException { } private void readPackInfo ( final DataInput header , final Archive archive ) throws IOException { } private void readUnpackInfo ( final DataInput header , final Archive archive ) throws IOException { } private void readSubStreamsInfo ( final DataInput header , final Archive archive ) throws IOException { } private Folder readFolder ( final DataInput header ) throws IOException { } private BitSet readAllOrBits ( final DataInput header , final int size ) throws IOException { } private BitSet readBits ( final DataInput header , final int size ) throws IOException { } private void readFilesInfo ( final DataInput header , final Archive archive ) throws IOException { } private void calculateStreamMap ( final Archive archive ) throws IOException { } private void buildDecodingStream ( ) throws IOException { } private void drainPreviousEntry ( ) throws IOException { } private InputStream buildDecoderStack ( final Folder folder , final long folderOffset , final int firstPackStreamIndex , SevenZArchiveEntry entry ) throws IOException { file . seek ( folderOffset ) ; InputStream inputStreamStack = new BoundedRandomAccessFileInputStream ( file , archive . packSizes [ firstPackStreamIndex ] ) ; LinkedList < SevenZMethodConfiguration > methods = new LinkedList < SevenZMethodConfiguration > ( ) ; for ( final Coder coder : folder . getOrderedCoders ( ) ) { if ( ( ( coder . numInStreams ) != 1 ) || ( ( coder . numOutStreams ) != 1 ) ) { throw new IOException ( "Multi<seq2seq4repair_space>input//output<seq2seq4repair_space>stream<seq2seq4repair_space>coders<seq2seq4repair_space>are<seq2seq4repair_space>not<seq2seq4repair_space>yet<seq2seq4repair_space>supported" ) ; } <START_BUG> SevenZMethod method = Coders . findBySignature ( coder . decompressionMethodId ) ; <END_BUG> methods . addFirst ( new SevenZMethodConfiguration ( method ) ) ; inputStreamStack = Coders . addDecoder ( inputStreamStack , coder , password ) ; } entry . setContentMethods ( methods ) ; if ( folder . hasCrc ) { return new org . apache . commons . compress . utils . CRC32VerifyingInputStream ( inputStreamStack , folder . getUnpackSize ( ) , folder . crc ) ; } else { return inputStreamStack ; } } public int read ( ) throws IOException { } public int read ( byte [ ] b ) throws IOException { } public int read ( byte [ ] b , int off , int len ) throws IOException { } private static long readUint64 ( final DataInput in ) throws IOException { } public static boolean matches ( byte [ ] signature , int length ) { } }

Fix:
SevenZMethod method = SevenZMethod . byId ( coder . decompressionMethodId ) ;