Buggy code:
public class AntiEntropyService { private static final Logger logger = LoggerFactory . getLogger ( AntiEntropyService . class ) ; public static final AntiEntropyService instance = new AntiEntropyService ( ) ; public static final long REQUEST_TIMEOUT = ( ( 48 * 60 ) * 60 ) * 1000 ; private final ExpiringMap < String , Map < AntiEntropyService . TreeRequest , AntiEntropyService . TreePair > > requests ; private final ConcurrentMap < String , AntiEntropyService . RepairSession . Callback > sessions ; protected AntiEntropyService ( ) { } public AntiEntropyService . RepairSession getRepairSession ( Range range , String tablename , String ... cfnames ) { } AntiEntropyService . RepairSession getArtificialRepairSession ( AntiEntropyService . TreeRequest req , String tablename , String ... cfnames ) { } void completedRequest ( AntiEntropyService . TreeRequest request ) { } private Map < AntiEntropyService . TreeRequest , AntiEntropyService . TreePair > rendezvousPairs ( String sessionid ) { } static Set < InetAddress > getNeighbors ( String table , Range range ) { } private void rendezvous ( AntiEntropyService . TreeRequest request , MerkleTree tree ) { } AntiEntropyService . TreeRequest request ( String sessionid , InetAddress remote , Range range , String ksname , String cfname ) { } void respond ( AntiEntropyService . Validator validator , InetAddress local ) { } public static class Validator implements Runnable { public final AntiEntropyService . TreeRequest request ; public final MerkleTree tree ; private transient List < MerkleTree . RowHash > minrows ; private transient long validated ; private transient TreeRange range ; private transient TreeRangeIterator ranges ; private transient DecoratedKey lastKey ; public static final RowHash EMPTY_ROW = new MerkleTree . RowHash ( null , new byte [ 0 ] ) ; Validator ( AntiEntropyService . TreeRequest request ) { } Validator ( AntiEntropyService . TreeRequest request , MerkleTree tree ) { } public void prepare ( ColumnFamilyStore cfs ) { } public void add ( AbstractCompactedRow row ) { } private RowHash rowHash ( AbstractCompactedRow row ) { } public void complete ( ) { } public void run ( ) { } } public static class Differencer implements Runnable { public final AntiEntropyService . TreeRequest request ; public final MerkleTree ltree ; public final MerkleTree rtree ; public List < Range > differences ; public Differencer ( AntiEntropyService . TreeRequest request , MerkleTree ltree , MerkleTree rtree ) { } public void run ( ) { } void performStreamingRepair ( ) throws IOException { AntiEntropyService . logger . info ( ( ( ( "Performing<seq2seq4repair_space>streaming<seq2seq4repair_space>repair<seq2seq4repair_space>of<seq2seq4repair_space>" + ( differences . size ( ) ) ) + "<seq2seq4repair_space>ranges<seq2seq4repair_space>for<seq2seq4repair_space>" ) + ( request ) ) ) ; ColumnFamilyStore cfstore = Table . open ( request . cf . left ) . getColumnFamilyStore ( request . cf . right ) ; try { Collection < SSTableReader > sstables = cfstore . getSSTables ( ) ; AntiEntropyService . Differencer . Callback callback = new AntiEntropyService . Differencer . Callback ( ) ; StreamOutSession outsession = StreamOutSession . create ( request . cf . left , request . endpoint , callback ) ; StreamOut . transferSSTables ( outsession , sstables , differences , AES ) ; <START_BUG> StreamIn . requestRanges ( request . endpoint , request . cf . left , Collections . singletonList ( cfstore ) , differences , callback , AES ) ; <END_BUG> } catch ( Exception e ) { throw new IOException ( "Streaming<seq2seq4repair_space>repair<seq2seq4repair_space>failed." , e ) ; } } public String toString ( ) { } class Callback extends WrappedRunnable { private final AtomicInteger outstanding = new AtomicInteger ( 2 ) ; protected void runMayThrow ( ) throws Exception { } } } public static class TreeRequestVerbHandler implements ICompactSerializer < AntiEntropyService . TreeRequest > , IVerbHandler { public static final AntiEntropyService . TreeRequestVerbHandler SERIALIZER = new AntiEntropyService . TreeRequestVerbHandler ( ) ; static Message makeVerb ( AntiEntropyService . TreeRequest request , int version ) { } public void serialize ( AntiEntropyService . TreeRequest request , DataOutputStream dos , int version ) throws IOException { } public AntiEntropyService . TreeRequest deserialize ( DataInputStream dis , int version ) throws IOException { } public void doVerb ( Message message , String id ) { } } public static class TreeResponseVerbHandler implements ICompactSerializer < AntiEntropyService . Validator > , IVerbHandler { public static final AntiEntropyService . TreeResponseVerbHandler SERIALIZER = new AntiEntropyService . TreeResponseVerbHandler ( ) ; static Message makeVerb ( InetAddress local , AntiEntropyService . Validator validator ) { } public void serialize ( AntiEntropyService . Validator v , DataOutputStream dos , int version ) throws IOException { } public AntiEntropyService . Validator deserialize ( DataInputStream dis , int version ) throws IOException { } public void doVerb ( Message message , String id ) { } } static class CFPair extends Pair < String , String > { public CFPair ( String table , String cf ) { } } static class TreePair extends Pair < MerkleTree , MerkleTree > { public TreePair ( MerkleTree local , MerkleTree remote ) { } } public static class TreeRequest { public final String sessionid ; public final InetAddress endpoint ; public final Range range ; public final AntiEntropyService . CFPair cf ; public TreeRequest ( String sessionid , InetAddress endpoint , Range range , AntiEntropyService . CFPair cf ) { } @ Override public final int hashCode ( ) { } @ Override public final boolean equals ( Object o ) { } @ Override public String toString ( ) { } } class RepairSession extends Thread { private final String tablename ; private final String [ ] cfnames ; private final SimpleCondition requestsMade ; private final ConcurrentHashMap < AntiEntropyService . TreeRequest , Object > requests ; private final Range range ; public RepairSession ( AntiEntropyService . TreeRequest req , String tablename , String ... cfnames ) { } public RepairSession ( Range range , String tablename , String ... cfnames ) { } public void blockUntilRunning ( ) throws InterruptedException { }

Fix:
StreamIn . requestRanges ( request . endpoint , request . cf . left , differences , callback , AES ) ;