Buggy code:
public class Table { public static final String SYSTEM_TABLE = "system" ; private static final Logger logger = LoggerFactory . getLogger ( Table . class ) ; private static final String SNAPSHOT_SUBDIR_NAME = "snapshots" ; static final ReentrantReadWriteLock switchLock = new ReentrantReadWriteLock ( ) ; private static final Map < String , Table > instances = new org . cliffc . high_scale_lib . NonBlockingHashMap < String , Table > ( ) ; public final String name ; private final Map < Integer , ColumnFamilyStore > columnFamilyStores = new ConcurrentHashMap < Integer , ColumnFamilyStore > ( ) ; private final Object [ ] indexLocks ; private ScheduledFuture < ? > flushTask ; private volatile AbstractReplicationStrategy replicationStrategy ; public static Table open ( String table ) { } public static Table clear ( String table ) throws IOException { } public Collection < ColumnFamilyStore > getColumnFamilyStores ( ) { } public ColumnFamilyStore getColumnFamilyStore ( String cfName ) { } public void snapshot ( String clientSuppliedName ) { } public static String getTimestampedSnapshotName ( String clientSuppliedName ) { } public void clearSnapshot ( ) throws IOException { } public List < SSTableReader > getAllSSTables ( ) { } private Table ( String table ) { } public void createReplicationStrategy ( KSMetaData ksm ) throws ConfigurationException { } public void dropCf ( Integer cfId ) throws IOException { } private void unloadCf ( ColumnFamilyStore cfs ) throws IOException { } public void initCf ( Integer cfId , String cfName ) { } public void renameCf ( Integer cfId , String newName ) throws IOException { } public Row getRow ( QueryFilter filter ) throws IOException { } public void apply ( RowMutation mutation , Object serializedMutation , boolean writeCommitLog ) throws IOException { } private static List < Memtable > addFullMemtable ( List < Memtable > memtablesToFlush , Memtable fullMemtable ) { } private static void ignoreObsoleteMutations ( ColumnFamily cf , SortedSet < ByteBuffer > mutatedIndexedColumns , ColumnFamily oldIndexedColumns ) { if ( oldIndexedColumns == null ) return ; for ( Iterator < ByteBuffer > iter = mutatedIndexedColumns . iterator ( ) ; iter . hasNext ( ) ; ) { ByteBuffer name = iter . next ( ) ; IColumn newColumn = cf . getColumn ( name ) ; if ( ( newColumn != null ) && ( cf . isMarkedForDelete ( ) ) ) throw new UnsupportedOperationException ( "Index<seq2seq4repair_space>manager<seq2seq4repair_space>cannot<seq2seq4repair_space>support<seq2seq4repair_space>deleting<seq2seq4repair_space>and<seq2seq4repair_space>inserting<seq2seq4repair_space>into<seq2seq4repair_space>a<seq2seq4repair_space>row<seq2seq4repair_space>in<seq2seq4repair_space>the<seq2seq4repair_space>same<seq2seq4repair_space>mutation" ) ; IColumn oldColumn = oldIndexedColumns . getColumn ( name ) ; boolean bothDeleted = ( ( newColumn == null ) || ( newColumn . isMarkedForDelete ( ) ) ) && ( ( oldColumn == null ) || ( oldColumn . isMarkedForDelete ( ) ) ) ; boolean obsoleteRowTombstone = ( ( newColumn == null ) && ( oldColumn != null ) ) && ( ( cf . getMarkedForDeleteAt ( ) ) < ( oldColumn . timestamp ( ) ) ) ; boolean obsoleteColumn = ( newColumn != null ) && ( ( ( newColumn . timestamp ( ) ) <= ( oldIndexedColumns . getMarkedForDeleteAt ( ) ) ) || ( ( oldColumn != null ) && ( ( oldColumn . reconcile ( newColumn ) ) == oldColumn ) ) ) ; if ( ( bothDeleted || obsoleteRowTombstone ) || obsoleteColumn ) { if ( Table . logger . isDebugEnabled ( ) ) <START_BUG> Table . logger . debug ( ( "skipping<seq2seq4repair_space>index<seq2seq4repair_space>update<seq2seq4repair_space>for<seq2seq4repair_space>obsolete<seq2seq4repair_space>mutation<seq2seq4repair_space>of<seq2seq4repair_space>" + ( cf . getComparator ( ) . getString ( oldColumn . name ( ) ) ) ) ) ; <END_BUG> iter . remove ( ) ; oldIndexedColumns . remove ( name ) ; } } } private static ColumnFamily readCurrentIndexedColumns ( DecoratedKey key , ColumnFamilyStore cfs , SortedSet < ByteBuffer > mutatedIndexedColumns ) { } private static List < Memtable > applyIndexUpdates ( ByteBuffer key , ColumnFamily cf , ColumnFamilyStore cfs , SortedSet < ByteBuffer > mutatedIndexedColumns , ColumnFamily oldIndexedColumns ) { } public static void cleanupIndexEntry ( ColumnFamilyStore cfs , ByteBuffer key , IColumn column ) { } public Table . IndexBuilder createIndexBuilder ( ColumnFamilyStore cfs , SortedSet < ByteBuffer > columns , ReducingKeyIterator iter ) { } public AbstractReplicationStrategy getReplicationStrategy ( ) { } public class IndexBuilder implements ICompactionInfo { private final ColumnFamilyStore cfs ; private final SortedSet < ByteBuffer > columns ; private final ReducingKeyIterator iter ; public IndexBuilder ( ColumnFamilyStore cfs , SortedSet < ByteBuffer > columns , ReducingKeyIterator iter ) { } public void build ( ) { } public long getTotalBytes ( ) { } public long getBytesComplete ( ) { } public String getTaskType ( ) { } } private Object indexLockFor ( ByteBuffer key ) { } public List < Future < ? > > flush ( ) throws IOException { } void load ( RowMutation rowMutation ) throws IOException { } public String getDataFileLocation ( long expectedSize ) { } public static String getSnapshotPath ( String dataDirPath , String tableName , String snapshotName ) { } public static Iterable < Table > all ( ) { } public void truncate ( String cfname ) throws IOException , InterruptedException , ExecutionException { } @ Override public String toString ( ) { } }

Fix:
Table . logger . debug ( ( "skipping<seq2seq4repair_space>index<seq2seq4repair_space>update<seq2seq4repair_space>for<seq2seq4repair_space>obsolete<seq2seq4repair_space>mutation<seq2seq4repair_space>of<seq2seq4repair_space>" + ( cf . getComparator ( ) . getString ( name ) ) ) ) ;