Buggy code:
private void handleStateNormal ( InetAddress endpoint , String [ ] pieces ) { } private void handleStateLeaving ( InetAddress endpoint , String [ ] pieces ) { } private void handleStateLeft ( InetAddress endpoint , String [ ] pieces ) { } private void handleStateRemoving ( InetAddress endpoint , Token removeToken , String state ) { } private void excise ( Token token , InetAddress endpoint ) { } private void calculatePendingRanges ( ) { } public static void calculatePendingRanges ( AbstractReplicationStrategy strategy , String table ) { } private Multimap < InetAddress , Range > getNewSourceRanges ( String table , Set < Range > ranges ) { } private void sendReplicationNotification ( InetAddress local , InetAddress remote ) { } private void restoreReplicaCount ( InetAddress endpoint , final InetAddress notifyEndpoint ) { } private Multimap < Range , InetAddress > getChangedRangesForLeaving ( String table , InetAddress endpoint ) { } public void onJoin ( InetAddress endpoint , EndpointState epState ) { } public void onAlive ( InetAddress endpoint , EndpointState state ) { } public void onRemove ( InetAddress endpoint ) { } public void onDead ( InetAddress endpoint , EndpointState state ) { } public double getLoad ( ) { } public String getLoadString ( ) { } public Map < String , String > getLoadMap ( ) { } public final void deliverHints ( InetAddress endpoint ) { } public final void deliverHints ( String host ) throws UnknownHostException { } public Token getLocalToken ( ) { } public String getToken ( ) { } public String getReleaseVersion ( ) { } public List < String > getLeavingNodes ( ) { } public List < String > getJoiningNodes ( ) { } public List < String > getLiveNodes ( ) { } public List < String > getUnreachableNodes ( ) { } private List < String > stringify ( Iterable < InetAddress > endpoints ) { } public int getCurrentGenerationNumber ( ) { } public void forceTableCleanup ( String tableName , String ... columnFamilies ) throws IOException , InterruptedException , ExecutionException { } public void forceTableCompaction ( String tableName , String ... columnFamilies ) throws IOException , InterruptedException , ExecutionException { } public void invalidateKeyCaches ( String tableName , String ... columnFamilies ) throws IOException { } public void invalidateRowCaches ( String tableName , String ... columnFamilies ) throws IOException { } public void takeSnapshot ( String tableName , String tag ) throws IOException { } private Table getValidTable ( String tableName ) throws IOException { } public void takeAllSnapshot ( String tag ) throws IOException { } public void clearSnapshot ( ) throws IOException { } public Iterable < ColumnFamilyStore > getValidColumnFamilies ( String tableName , String ... cfNames ) throws IOException { } public void forceTableFlush ( final String tableName , final String ... columnFamilies ) throws IOException , InterruptedException , ExecutionException { } public void forceTableRepair ( final String tableName , final String ... columnFamilies ) throws IOException { } InetAddress getPredecessor ( InetAddress ep ) { } public InetAddress getSuccessor ( InetAddress ep ) { } public Range getPrimaryRangeForEndpoint ( InetAddress ep ) { } Collection < Range > getRangesForEndpoint ( String table , InetAddress ep ) { } public List < Range > getAllRanges ( List < Token > sortedTokens ) { } public List < InetAddress > getNaturalEndpoints ( String table , ByteBuffer key ) { } public List < InetAddress > getNaturalEndpoints ( String table , Token token ) { } public List < InetAddress > getLiveNaturalEndpoints ( String table , ByteBuffer key ) { } public List < InetAddress > getLiveNaturalEndpoints ( String table , Token token ) { } public void setLog4jLevel ( String classQualifier , String rawLevel ) { } public List < Token > getSplits ( String table , String cfName , Range range , int keysPerSplit ) { } public Token getBootstrapToken ( ) { } private void startLeaving ( ) { } public void decommission ( ) throws InterruptedException { } private void leaveRing ( ) { SystemTable . setBootstrapped ( false ) ; tokenMetadata_ . removeEndpoint ( FBUtilities . getLocalAddress ( ) ) ; calculatePendingRanges ( ) ; Gossiper . instance . addLocalApplicationState ( STATUS , valueFactory . left ( getLocalToken ( ) ) ) ; try { <START_BUG> Thread . sleep ( ( 2 * ( Gossiper . intervalInMillis_ ) ) ) ; <END_BUG> } catch ( InterruptedException e ) { throw new AssertionError ( e ) ; } } private void unbootstrap ( final Runnable onFinish ) { } public void move ( String newToken ) throws IOException , InterruptedException { } public void loadBalance ( ) throws IOException , InterruptedException { } private void move ( final Token token ) throws IOException , InterruptedException { } public String getRemovalStatus ( ) { } public void forceRemoveCompletion ( ) { } public void removeToken ( String tokenString ) { } public void confirmReplication ( InetAddress node ) { } public boolean isClientMode ( ) { } public synchronized void requestGC ( ) { } private boolean hasUnreclaimedSpace ( ) { } public String getOperationMode ( ) { } public String getDrainProgress ( ) { } public synchronized void drain ( ) throws IOException , InterruptedException , ExecutionException { } public void loadSchemaFromYAML ( ) throws IOException , ConfigurationException { } public String exportSchema ( ) throws IOException { } public class Keyspaces { public List < RawKeyspace > keyspaces ; } IPartitioner setPartitionerUnsafe ( IPartitioner newPartitioner ) { } TokenMetadata setTokenMetadataUnsafe ( TokenMetadata tmd ) { } public void truncate ( String keyspace , String columnFamily ) throws IOException , TimeoutException , UnavailableException { } public void saveCaches ( ) throws InterruptedException , ExecutionException { } public Map < Token , Float > getOwnership ( ) { } public List < String > getKeyspaces ( ) { } public void updateSnitch ( String epSnitchClassName , Boolean dynamic , Integer dynamicUpdateInterval , Integer dynamicResetInterval , Double dynamicBadnessThreshold ) throws ConfigurationException { }

Fix:
Thread . sleep ( ( 2 * ( Gossiper . intervalInMillis ) ) ) ;