Buggy code:
public class AntiEntropyService { private static final Logger logger = LoggerFactory . getLogger ( AntiEntropyService . class ) ; public static final long TREE_STORE_TIMEOUT = 600000 ; public static final long NATURAL_REPAIR_FREQUENCY = 3600000 ; public static final AntiEntropyService instance = new AntiEntropyService ( ) ; private final ConcurrentMap < AntiEntropyService . CFPair , Long > naturalRepairs ; private final Map < AntiEntropyService . CFPair , ExpiringMap < InetAddress , AntiEntropyService . TreePair > > trees ; protected AntiEntropyService ( ) { } private ExpiringMap < InetAddress , AntiEntropyService . TreePair > rendezvousPairs ( AntiEntropyService . CFPair cf ) { } public static Set < InetAddress > getNeighbors ( String table ) { } private void rendezvous ( AntiEntropyService . CFPair cf , InetAddress endpoint , MerkleTree tree ) { } void notifyNeighbors ( AntiEntropyService . Validator validator , InetAddress local , Collection < InetAddress > neighbors ) { } AntiEntropyService . TreePair getRendezvousPair_TestsOnly ( String table , String cf , InetAddress remote ) { } void clearNaturalRepairs_TestsOnly ( ) { } private boolean shouldRunNaturally ( AntiEntropyService . CFPair cf ) { } public AntiEntropyService . IValidator getValidator ( String table , String cf , InetAddress initiator , boolean major ) { } public static interface IValidator { public void prepare ( ) { } public void add ( CompactedRow row ) { } public void complete ( ) { } } public static class Validator implements Callable < Object > , AntiEntropyService . IValidator { public final AntiEntropyService . CFPair cf ; public final MerkleTree tree ; private transient List < MerkleTree . RowHash > minrows ; private transient Token mintoken ; private transient long validated ; private transient TreeRange range ; private transient TreeRangeIterator ranges ; public static final RowHash EMPTY_ROW = new MerkleTree . RowHash ( null , new byte [ 0 ] ) ; Validator ( AntiEntropyService . CFPair cf ) { } Validator ( AntiEntropyService . CFPair cf , MerkleTree tree ) { } public void prepare ( ) { } public void add ( CompactedRow row ) { } private RowHash rowHash ( CompactedRow row ) { ( validated ) ++ ; <START_BUG> byte [ ] rowhash = FBUtilities . hash ( "SHA-256" , row . key . key . getBytes ( ) , row . buffer . getData ( ) ) ; <END_BUG> return new MerkleTree . RowHash ( row . key . token , rowhash ) ; } public void complete ( ) { } public Object call ( ) throws Exception { } } public static class NoopValidator implements AntiEntropyService . IValidator { public void prepare ( ) { } public void add ( CompactedRow row ) { } public void complete ( ) { } } public static class Differencer implements Runnable { public final AntiEntropyService . CFPair cf ; public final InetAddress local ; public final InetAddress remote ; public final MerkleTree ltree ; public final MerkleTree rtree ; public final List < MerkleTree . TreeRange > differences ; public Differencer ( AntiEntropyService . CFPair cf , InetAddress local , InetAddress remote , MerkleTree ltree , MerkleTree rtree ) { } public void run ( ) { } float differenceFraction ( ) { } void performStreamingRepair ( ) throws IOException { } public String toString ( ) { } } public static class TreeRequestVerbHandler implements ICompactSerializer < AntiEntropyService . CFPair > , IVerbHandler { public static final AntiEntropyService . TreeRequestVerbHandler SERIALIZER = new AntiEntropyService . TreeRequestVerbHandler ( ) ; static Message makeVerb ( String table , String cf ) { } public void serialize ( AntiEntropyService . CFPair treerequest , DataOutputStream dos ) throws IOException { } public AntiEntropyService . CFPair deserialize ( DataInputStream dis ) throws IOException { } public void doVerb ( Message message ) { } } 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 ) throws IOException { } public AntiEntropyService . Validator deserialize ( DataInputStream dis ) throws IOException { } public void doVerb ( Message message ) { } } 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 ) { } } }

Fix:
byte [ ] rowhash = FBUtilities . hash ( "SHA-256" , row . key . key , row . buffer . getData ( ) ) ;