Buggy code:
ColumnFamilyStore ( String table , String columnFamilyName , boolean isSuper , int indexValue ) throws IOException { } public static ColumnFamilyStore getColumnFamilyStore ( String table , String columnFamily ) throws IOException { } void onStart ( ) throws IOException { } public String cfStats ( String newLineSeparator ) { } List < SSTableReader > forceAntiCompaction ( Collection < Range > ranges , InetAddress target ) { } public String getColumnFamilyName ( ) { } private static String getColumnFamilyFromFileName ( String filename ) { } public static int getGenerationFromFileName ( String filename ) { } synchronized String getTempSSTablePath ( ) { } public String getTempSSTableFileName ( ) { } Future < ? > switchMemtable ( Memtable oldMemtable ) throws IOException { } void switchBinaryMemtable ( String key , byte [ ] buffer ) throws IOException { } public void forceFlushIfExpired ( ) throws IOException { } public Future < ? > forceFlush ( ) throws IOException { } void forceBlockingFlush ( ) throws IOException , InterruptedException , ExecutionException { } public void forceFlushBinary ( ) { } Memtable apply ( String key , ColumnFamily columnFamily ) throws IOException { } void applyBinary ( String key , byte [ ] buffer ) throws IOException { } static ColumnFamily removeDeleted ( ColumnFamily cf ) { } public static int getDefaultGCBefore ( ) { } public static ColumnFamily removeDeleted ( ColumnFamily cf , int gcBefore ) { } private static void removeDeletedStandard ( ColumnFamily cf , int gcBefore ) { } private static void removeDeletedSuper ( ColumnFamily cf , int gcBefore ) { } void applyNow ( String key , ColumnFamily columnFamily ) throws IOException { } void onMemtableFlush ( CommitLog . CommitLogContext cLogCtx ) throws IOException { } public void addSSTable ( SSTableReader sstable ) { } static Set < List < SSTableReader > > getCompactionBuckets ( Iterable < SSTableReader > files , long min ) { } int doCompaction ( int minThreshold , int maxThreshold ) throws IOException { } void doMajorCompaction ( long skip ) throws IOException { } void doMajorCompactionInternal ( long skip ) throws IOException { } long getExpectedCompactedFileSize ( Iterable < SSTableReader > sstables ) { } SSTableReader getMaxSizeFile ( Iterable < SSTableReader > sstables ) { } List < SSTableReader > doAntiCompaction ( Collection < Range > ranges , InetAddress target ) throws IOException { } void forceCleanup ( ) { } void doCleanupCompaction ( ) throws IOException { } void doCleanup ( SSTableReader sstable ) throws IOException { } List < SSTableReader > doFileAntiCompaction ( Collection < SSTableReader > sstables , Collection < Range > ranges , InetAddress target ) throws IOException { } private int doFileCompaction ( Collection < SSTableReader > sstables ) throws IOException { } int doFileCompaction ( Collection < SSTableReader > sstables , int gcBefore ) throws IOException { } private long getTotalBytes ( Iterable < SSTableReader > sstables ) { } public static List < Memtable > getUnflushedMemtables ( String cfName ) { } static Set < Memtable > getMemtablesPendingFlushNotNull ( String columnFamilyName ) { } Condition submitFlush ( final IFlushable flushable ) { } public boolean isSuper ( ) { } public int getMemtableColumnsCount ( ) { } public int getMemtableDataSize ( ) { } public int getMemtableSwitchCount ( ) { } private Memtable getMemtableThreadSafe ( ) { } public Iterator < DecoratedKey > memtableKeyIterator ( ) throws InterruptedException , ExecutionException { } public Collection < SSTableReader > getSSTables ( ) { } public int getReadCount ( ) { } public double getReadLatency ( ) { } public int getPendingTasks ( ) { } public int getWriteCount ( ) { } public double getWriteLatency ( ) { } public ColumnFamily getColumnFamily ( String key , QueryPath path , byte [ ] start , byte [ ] finish , boolean reversed , int limit ) throws IOException { } public ColumnFamily getColumnFamily ( QueryFilter filter ) throws IOException { } public ColumnFamily getColumnFamily ( QueryFilter filter , int gcBefore ) throws IOException { assert columnFamily_ . equals ( filter . getColumnFamilyName ( ) ) ; long start = System . currentTimeMillis ( ) ; try { if ( ( filter . path . superColumnName ) != null ) { QueryFilter nameFilter = new NamesQueryFilter ( filter . key , new QueryPath ( columnFamily_ ) , filter . path . superColumnName ) ; <START_BUG> ColumnFamily cf = getColumnFamilyInternal ( nameFilter , ColumnFamilyStore . getDefaultGCBefore ( ) ) ; <END_BUG> if ( ( cf == null ) || ( ( cf . getColumnCount ( ) ) == 0 ) ) return cf ; assert ( cf . getSortedColumns ( ) . size ( ) ) == 1 ; SuperColumn sc = ( ( SuperColumn ) ( cf . getSortedColumns ( ) . iterator ( ) . next ( ) ) ) ; SuperColumn scFiltered = filter . filterSuperColumn ( sc , gcBefore ) ; ColumnFamily cfFiltered = cf . cloneMeShallow ( ) ; cfFiltered . addColumn ( scFiltered ) ; return ColumnFamilyStore . removeDeleted ( cfFiltered , gcBefore ) ; } return ColumnFamilyStore . removeDeleted ( getColumnFamilyInternal ( filter , gcBefore ) , gcBefore ) ; } finally { readStats_ . add ( ( ( System . currentTimeMillis ( ) ) - start ) ) ; } } private ColumnFamily getColumnFamilyInternal ( QueryFilter filter , int gcBefore ) throws IOException { } public RangeReply getKeyRange ( final String startWith , final String stopAt , int maxResults ) throws IOException , InterruptedException , ExecutionException { } public RangeReply getKeyRangeRaw ( final String startWith , final String stopAt , int maxResults ) throws IOException , InterruptedException , ExecutionException { } public RangeSliceReply getRangeSlice ( byte [ ] super_column , final String startKey , final String finishKey , int keyMax , SliceRange sliceRange , List < byte [ ] > columnNames ) throws IOException , InterruptedException , ExecutionException { } public AbstractType getComparator ( ) { } public void snapshot ( String snapshotName ) throws IOException { } void clearUnsafe ( ) { } }

Fix:
ColumnFamily cf = getColumnFamilyInternal ( nameFilter , gcBefore ) ;