Buggy code:
public class CassandraServer implements Cassandra . Iface { private static Logger logger = LoggerFactory . getLogger ( CassandraServer . class ) ; private static final List < ColumnOrSuperColumn > EMPTY_COLUMNS = Collections . emptyList ( ) ; private static final List < Column > EMPTY_SUBCOLUMNS = Collections . emptyList ( ) ; private static final List < CounterColumn > EMPTY_COUNTER_SUBCOLUMNS = Collections . emptyList ( ) ; public final ThreadLocal < ClientState > clientState = new ThreadLocal < ClientState > ( ) { @ Override public ClientState initialValue ( ) { } } ; private final IRequestScheduler requestScheduler ; public CassandraServer ( ) { } public ClientState state ( ) { } protected Map < DecoratedKey , ColumnFamily > readColumnFamily ( List < ReadCommand > commands , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } public List < Column > thriftifySubColumns ( Collection < IColumn > columns ) { } public List < CounterColumn > thriftifyCounterSubColumns ( Collection < IColumn > columns ) { } public List < ColumnOrSuperColumn > thriftifyColumns ( Collection < IColumn > columns , boolean reverseOrder ) { } private List < ColumnOrSuperColumn > thriftifySuperColumns ( Collection < IColumn > columns , boolean reverseOrder , boolean isCounterCF ) { } private List < ColumnOrSuperColumn > thriftifySuperColumns ( Collection < IColumn > columns , boolean reverseOrder ) { } private List < ColumnOrSuperColumn > thriftifyCounterSuperColumns ( Collection < IColumn > columns , boolean reverseOrder ) { } private Map < ByteBuffer , List < ColumnOrSuperColumn > > getSlice ( List < ReadCommand > commands , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } private List < ColumnOrSuperColumn > thriftifyColumnFamily ( ColumnFamily cf , boolean subcolumnsOnly , boolean reverseOrder ) { } public List < ColumnOrSuperColumn > get_slice ( ByteBuffer key , ColumnParent column_parent , SlicePredicate predicate , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } public Map < ByteBuffer , List < ColumnOrSuperColumn > > multiget_slice ( List < ByteBuffer > keys , ColumnParent column_parent , SlicePredicate predicate , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } private Map < ByteBuffer , List < ColumnOrSuperColumn > > multigetSliceInternal ( String keyspace , List < ByteBuffer > keys , ColumnParent column_parent , SlicePredicate predicate , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } private ColumnOrSuperColumn internal_get ( ByteBuffer key , ColumnPath column_path , ConsistencyLevel consistency_level ) throws InvalidRequestException , NotFoundException , TimedOutException , UnavailableException { } public ColumnOrSuperColumn get ( ByteBuffer key , ColumnPath column_path , ConsistencyLevel consistency_level ) throws InvalidRequestException , NotFoundException , TimedOutException , UnavailableException { } public int get_count ( ByteBuffer key , ColumnParent column_parent , SlicePredicate predicate , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } public Map < ByteBuffer , Integer > multiget_count ( List < ByteBuffer > keys , ColumnParent column_parent , SlicePredicate predicate , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } private void internal_insert ( ByteBuffer key , ColumnParent column_parent , Column column , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } public void insert ( ByteBuffer key , ColumnParent column_parent , Column column , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } private void internal_batch_mutate ( Map < ByteBuffer , Map < String , List < Mutation > > > mutation_map , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } public void batch_mutate ( Map < ByteBuffer , Map < String , List < Mutation > > > mutation_map , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } private void internal_remove ( ByteBuffer key , ColumnPath column_path , long timestamp , ConsistencyLevel consistency_level , boolean isCommutativeOp ) throws InvalidRequestException , TimedOutException , UnavailableException { } public void remove ( ByteBuffer key , ColumnPath column_path , long timestamp , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException { } private void doInsert ( ConsistencyLevel consistency_level , List < RowMutation > mutations ) throws TimedOutException , UnavailableException { } public KsDef describe_keyspace ( String table ) throws InvalidRequestException , NotFoundException { } public List < KeySlice > get_range_slices ( ColumnParent column_parent , SlicePredicate predicate , KeyRange range , ConsistencyLevel consistency_level ) throws InvalidRequestException , TimedOutException , UnavailableException , TException { CassandraServer . logger . debug ( "range_slice" ) ; String keyspace = state ( ) . getKeyspace ( ) ; state ( ) . hasColumnFamilyAccess ( column_parent . column_family , READ ) ; <START_BUG> CFMetaData metadata = ThriftValidation . validateColumnFamily ( keyspace , column_parent . column_family , false ) ; <END_BUG> ThriftValidation . validateColumnParent ( metadata , column_parent ) ; ThriftValidation . validatePredicate ( metadata , column_parent , predicate ) ; ThriftValidation . validateKeyRange ( range ) ; List < Row > rows ; try { IPartitioner p = StorageService . getPartitioner ( ) ; AbstractBounds bounds ; if ( ( range . start_key ) == null ) { Token . TokenFactory tokenFactory = p . getTokenFactory ( ) ; Token left = tokenFactory . fromString ( range . start_token ) ; Token right = tokenFactory . fromString ( range . end_token ) ; bounds = new Range ( left , right ) ; } else { bounds = new Bounds ( p . getToken ( range . start_key ) , p . getToken ( range . end_key ) ) ; } try { schedule ( ) ; rows = StorageProxy . getRangeSlice ( new RangeSliceCommand ( keyspace , column_parent , predicate , bounds , range . count ) , consistency_level ) ; } finally { release ( ) ; } assert rows != null ; } catch ( TimeoutException e ) { CassandraServer . logger . debug ( "...<seq2seq4repair_space>timed<seq2seq4repair_space>out" ) ; throw new TimedOutException ( ) ; } catch ( IOException e ) { throw new RuntimeException ( e ) ; } return thriftifyKeySlices ( rows , column_parent , predicate ) ; }

Fix:
CFMetaData metadata = ThriftValidation . validateColumnFamily ( keyspace , column_parent . column_family ) ;