Buggy code:
public class DiskIndex { String fileName ; private int headerInfoOffset ; private int numberOfChunks ; private int sizeOfLastChunk ; private int [ ] chunkOffsets ; private int documentReferenceSize ; private int startOfCategoryTables ; private HashtableOfIntValues categoryOffsets ; private int cacheUserCount ; private String [ ] [ ] cachedChunks ; private HashtableOfObject categoryTables ; public static final String SIGNATURE = "INDEX<seq2seq4repair_space>VERSION<seq2seq4repair_space>1.015" ; public static boolean DEBUG = false ; private static final int RE_INDEXED = - 1 ; private static final int DELETED = - 2 ; private static final int CHUNK_SIZE = 100 ; class IntList { int size ; int [ ] elements ; IntList ( int [ ] elements ) { } void add ( int newElement ) { } int [ ] asArray ( ) { } } DiskIndex ( String fileName ) { } SimpleSet addDocumentNames ( String substring , MemoryIndex memoryIndex ) throws IOException { } private HashtableOfObject addQueryResult ( HashtableOfObject results , char [ ] word , HashtableOfObject wordsToDocNumbers , MemoryIndex memoryIndex ) throws IOException { } HashtableOfObject addQueryResults ( char [ ] [ ] categories , char [ ] key , int matchRule , MemoryIndex memoryIndex ) throws IOException { } private void cacheDocumentNames ( ) throws IOException { } private String [ ] computeDocumentNames ( String [ ] onDiskNames , int [ ] positions , SimpleLookupTable indexedDocuments , MemoryIndex memoryIndex ) { } private void copyQueryResults ( HashtableOfObject categoryToWords , int newPosition ) { } File getIndexFile ( ) { } void initialize ( boolean reuseExistingFile ) throws IOException { File indexFile = getIndexFile ( ) ; if ( indexFile . exists ( ) ) { if ( reuseExistingFile ) { RandomAccessFile file = new RandomAccessFile ( this . fileName , "r" ) ; try { String signature = file . readUTF ( ) ; if ( ! ( signature . equals ( DiskIndex . SIGNATURE ) ) ) <START_BUG> throw new IOException ( org . eclipse . jdt . internal . core . util . Util . bind ( "exception.wrongFormat" ) ) ; <END_BUG> this . headerInfoOffset = file . readInt ( ) ; if ( ( this . headerInfoOffset ) > 0 ) readHeaderInfo ( file ) ; } finally { file . close ( ) ; } return ; } if ( ! ( indexFile . delete ( ) ) ) { if ( DiskIndex . DEBUG ) System . out . println ( ( "initialize<seq2seq4repair_space>-<seq2seq4repair_space>Failed<seq2seq4repair_space>to<seq2seq4repair_space>delete<seq2seq4repair_space>index<seq2seq4repair_space>" + ( this . fileName ) ) ) ; throw new IOException ( ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>delete<seq2seq4repair_space>index<seq2seq4repair_space>" + ( this . fileName ) ) ) ; } } if ( indexFile . createNewFile ( ) ) { RandomAccessFile file = new RandomAccessFile ( this . fileName , "rw" ) ; try { file . writeUTF ( DiskIndex . SIGNATURE ) ; file . writeInt ( ( - 1 ) ) ; } finally { file . close ( ) ; } } else { if ( DiskIndex . DEBUG ) System . out . println ( ( "initialize<seq2seq4repair_space>-<seq2seq4repair_space>Failed<seq2seq4repair_space>to<seq2seq4repair_space>create<seq2seq4repair_space>new<seq2seq4repair_space>index<seq2seq4repair_space>" + ( this . fileName ) ) ) ; throw new IOException ( ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>create<seq2seq4repair_space>new<seq2seq4repair_space>index<seq2seq4repair_space>" + ( this . fileName ) ) ) ; } } private void initializeFrom ( DiskIndex diskIndex , File newIndexFile ) throws IOException { } private void mergeCategories ( DiskIndex onDisk , int [ ] positions , DataOutputStream stream ) throws IOException { } private void mergeCategory ( char [ ] categoryName , DiskIndex onDisk , int [ ] positions , DataOutputStream stream ) throws IOException { } DiskIndex mergeWith ( MemoryIndex memoryIndex ) throws IOException { } private synchronized String [ ] readAllDocumentNames ( ) throws IOException { } private synchronized HashtableOfObject readCategoryTable ( char [ ] categoryName , boolean cacheDocNumbers ) throws IOException { } private void readChunk ( String [ ] docNames , DataInputStream stream , int index , int size ) throws IOException { } private int [ ] readDocumentArray ( DataInputStream stream ) throws IOException { } synchronized String readDocumentName ( int docNumber ) throws IOException { } synchronized int [ ] readDocumentNumbers ( Object arrayOffset ) throws IOException { } private void readHeaderInfo ( RandomAccessFile file ) throws IOException { } synchronized void startQuery ( ) { } synchronized void stopQuery ( ) { } private void writeAllDocumentNames ( String [ ] sortedDocNames , DataOutputStream stream ) throws IOException { } private void writeCategories ( DataOutputStream stream ) throws IOException { } private void writeCategoryTable ( char [ ] categoryName , HashtableOfObject wordsToDocs , DataOutputStream stream ) throws IOException { } private void writeDocumentNumbers ( int [ ] documentNumbers , DataOutputStream stream ) throws IOException { } private void writeHeaderInfo ( DataOutputStream stream ) throws IOException { } private void writeOffsetToHeader ( int offsetToHeader ) throws IOException { } }

Fix:
throw new IOException ( Messages . exception_wrongFormat ) ;