Buggy code:
final class IndexFileDeleter { private List < String > deletable ; private Map < String , IndexFileDeleter . RefCount > refCounts = new HashMap < String , IndexFileDeleter . RefCount > ( ) ; private List < IndexFileDeleter . CommitPoint > commits = new ArrayList < IndexFileDeleter . CommitPoint > ( ) ; private List < Collection < String > > lastFiles = new ArrayList < Collection < String > > ( ) ; private List < IndexFileDeleter . CommitPoint > commitsToDelete = new ArrayList < IndexFileDeleter . CommitPoint > ( ) ; private final InfoStream infoStream ; private Directory directory ; private IndexDeletionPolicy policy ; final boolean startingCommitDeleted ; private SegmentInfos lastSegmentInfos ; public static boolean VERBOSE_REF_COUNTS = false ; private final IndexWriter writer ; private boolean locked ( ) { } public IndexFileDeleter ( Directory directory , IndexDeletionPolicy policy , SegmentInfos segmentInfos , InfoStream infoStream , IndexWriter writer ) throws IOException , CorruptIndexException { } public SegmentInfos getLastSegmentInfos ( ) { } private void deleteCommits ( ) throws IOException { } public void refresh ( String segmentName ) throws IOException { } public void refresh ( ) throws IOException { } public void close ( ) throws IOException { } void revisitPolicy ( ) throws IOException { } public void deletePendingFiles ( ) throws IOException { } public void checkpoint ( SegmentInfos segmentInfos , boolean isCommit ) throws IOException { assert locked ( ) ; assert Thread . holdsLock ( writer ) ; if ( infoStream . isEnabled ( "IFD" ) ) { <START_BUG> infoStream . message ( "IFD" , ( ( ( ( ( ( ( "now<seq2seq4repair_space>checkpoint<seq2seq4repair_space>\"" + ( writer . segString ( segmentInfos ) ) ) + "\"<seq2seq4repair_space>[" ) + ( segmentInfos . size ( ) ) ) + "<seq2seq4repair_space>segments<seq2seq4repair_space>" ) + ";<seq2seq4repair_space>isCommit<seq2seq4repair_space>=<seq2seq4repair_space>" ) + isCommit ) + "]" ) ) ; <END_BUG> } deletePendingFiles ( ) ; incRef ( segmentInfos , isCommit ) ; if ( isCommit ) { commits . add ( new IndexFileDeleter . CommitPoint ( commitsToDelete , directory , segmentInfos ) ) ; policy . onCommit ( commits ) ; deleteCommits ( ) ; } else { for ( Collection < String > lastFile : lastFiles ) { decRef ( lastFile ) ; } lastFiles . clear ( ) ; lastFiles . add ( segmentInfos . files ( directory , false ) ) ; } } void incRef ( SegmentInfos segmentInfos , boolean isCommit ) throws IOException { } void incRef ( Collection < String > files ) throws IOException { } void incRef ( String fileName ) throws IOException { } void decRef ( Collection < String > files ) throws IOException { } void decRef ( String fileName ) throws IOException { } void decRef ( SegmentInfos segmentInfos ) throws IOException { } public boolean exists ( String fileName ) { } private IndexFileDeleter . RefCount getRefCount ( String fileName ) { } void deleteFiles ( List < String > files ) throws IOException { } void deleteNewFiles ( Collection < String > files ) throws IOException { } void deleteFile ( String fileName ) throws IOException { } private static final class RefCount { final String fileName ; boolean initDone ; RefCount ( String fileName ) { } int count ; public int IncRef ( ) { } public int DecRef ( ) { } } private static final class CommitPoint extends IndexCommit { Collection < String > files ; String segmentsFileName ; boolean deleted ; Directory directory ; Collection < IndexFileDeleter . CommitPoint > commitsToDelete ; long generation ; final Map < String , String > userData ; private final int segmentCount ; public CommitPoint ( Collection < IndexFileDeleter . CommitPoint > commitsToDelete , Directory directory , SegmentInfos segmentInfos ) throws IOException { } @ Override public String toString ( ) { } @ Override public int getSegmentCount ( ) { } @ Override public String getSegmentsFileName ( ) { } @ Override public Collection < String > getFileNames ( ) throws IOException { } @ Override public Directory getDirectory ( ) { } @ Override public long getGeneration ( ) { } @ Override public Map < String , String > getUserData ( ) { } @ Override public void delete ( ) { } @ Override public boolean isDeleted ( ) { } } }

Fix:
infoStream . message ( "IFD" , ( ( ( ( ( ( ( "now<seq2seq4repair_space>checkpoint<seq2seq4repair_space>\"" + ( writer . segString ( writer . toLiveInfos ( segmentInfos ) ) ) ) + "\"<seq2seq4repair_space>[" ) + ( segmentInfos . size ( ) ) ) + "<seq2seq4repair_space>segments<seq2seq4repair_space>" ) + ";<seq2seq4repair_space>isCommit<seq2seq4repair_space>=<seq2seq4repair_space>" ) + isCommit ) + "]" ) ) ;