Buggy code:
public class HintedHandOffManager { public static final HintedHandOffManager instance = new HintedHandOffManager ( ) ; private static final Logger logger_ = Logger . getLogger ( HintedHandOffManager . class ) ; public static final String HINTS_CF = "HintsColumnFamily" ; private static final int PAGE_SIZE = 10000 ; private final NonBlockingHashSet < InetAddress > queuedDeliveries = new NonBlockingHashSet < InetAddress > ( ) ; private final ExecutorService executor_ ; public HintedHandOffManager ( ) { } private static boolean sendMessage ( InetAddress endPoint , String tableName , String key ) throws IOException { if ( ! ( Gossiper . instance . isKnownEndpoint ( endPoint ) ) ) { HintedHandOffManager . logger_ . warn ( ( ( "Hints<seq2seq4repair_space>found<seq2seq4repair_space>for<seq2seq4repair_space>endpoint<seq2seq4repair_space>" + endPoint ) + "<seq2seq4repair_space>which<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>part<seq2seq4repair_space>of<seq2seq4repair_space>the<seq2seq4repair_space>gossip<seq2seq4repair_space>network.<seq2seq4repair_space>discarding." ) ) ; return true ; } if ( ! ( FailureDetector . instance . isAlive ( endPoint ) ) ) { return false ; } Table table = Table . open ( tableName ) ; for ( ColumnFamilyStore cfs : table . getColumnFamilyStores ( ) ) { byte [ ] startColumn = ArrayUtils . EMPTY_BYTE_ARRAY ; while ( true ) { <START_BUG> QueryFilter filter = new org . apache . cassandra . db . filter . SliceQueryFilter ( tableName , new org . apache . cassandra . db . filter . QueryPath ( cfs . getColumnFamilyName ( ) ) , startColumn , ArrayUtils . EMPTY_BYTE_ARRAY , false , HintedHandOffManager . PAGE_SIZE ) ; <END_BUG> ColumnFamily cf = cfs . getColumnFamily ( filter ) ; if ( HintedHandOffManager . pagingFinished ( cf , startColumn ) ) break ; if ( cf . getColumnNames ( ) . isEmpty ( ) ) { if ( HintedHandOffManager . logger_ . isDebugEnabled ( ) ) HintedHandOffManager . logger_ . debug ( ( "Nothing<seq2seq4repair_space>to<seq2seq4repair_space>hand<seq2seq4repair_space>off<seq2seq4repair_space>for<seq2seq4repair_space>" + key ) ) ; break ; } startColumn = cf . getColumnNames ( ) . last ( ) ; RowMutation rm = new RowMutation ( tableName , key ) ; rm . add ( cf ) ; Message message = rm . makeRowMutationMessage ( ) ; WriteResponseHandler responseHandler = new WriteResponseHandler ( 1 , tableName ) ; MessagingService . instance . sendRR ( message , new InetAddress [ ] { endPoint } , responseHandler ) ; try { responseHandler . get ( ) ; } catch ( TimeoutException e ) { return false ; } } } return true ; } private static void deleteEndPoint ( byte [ ] endpointAddress , String tableName , byte [ ] key , long timestamp ) throws IOException { } private static void deleteHintKey ( String tableName , byte [ ] key ) throws IOException { } private static boolean pagingFinished ( ColumnFamily hintColumnFamily , byte [ ] startColumn ) { } private void deliverHintsToEndpoint ( InetAddress endPoint ) throws IOException , TimeoutException , DigestMismatchException , InvalidRequestException { } public void deliverHints ( final InetAddress to ) { } public void deliverHints ( String to ) throws UnknownHostException { } }

Fix:
QueryFilter filter = new org . apache . cassandra . db . filter . SliceQueryFilter ( key , new org . apache . cassandra . db . filter . QueryPath ( cfs . getColumnFamilyName ( ) ) , startColumn , ArrayUtils . EMPTY_BYTE_ARRAY , false , HintedHandOffManager . PAGE_SIZE ) ;