Program: 90109
Project: 90109
Buggy source:
/** 
 * Process reporting of a checksum from a bitarchive for a specific file as part of a store operation for the file. Verify that the checksum is correct, update the BitArchiveStoreState state.
 * @param arcFileName The file being stored
 * @param bitarchiveName The bitarchive reporting a checksum
 * @param orgChecksum The original checksum
 * @param reportedChecksum The checksum calculated by the bitarchive This value is "", if arcfileName does not exist in bitarchive.
 */
synchronized private void processCheckSum(String arcFileName,String bitarchiveName,String orgChecksum,String reportedChecksum){
  log.debug("String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(arcFileName,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(bitarchiveName,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(orgChecksum,"String_Node_Str");
  ArgumentNotValid.checkNotNull(reportedChecksum,"String_Node_Str");
  if (orgChecksum.equals(reportedChecksum)) {
    ad.setState(arcFileName,bitarchiveName,BitArchiveStoreState.UPLOAD_COMPLETED);
    considerReplyingOnStore(arcFileName);
  }
 else {
    if (reportedChecksum.equals("String_Node_Str") && retryOk(bitarchiveName,arcFileName)) {
      RemoteFile rf=outstandingRemoteFiles.get(arcFileName);
      if (rf != null) {
        log.debug("String_Node_Str" + arcFileName + "String_Node_Str");
        ad.setState(rf.getName(),bitarchiveName,BitArchiveStoreState.UPLOAD_STARTED);
        connectedBitarchives.get(bitarchiveName).upload(rf);
        incRetry(bitarchiveName,arcFileName);
        return;
      }
    }
    log.warn("String_Node_Str" + arcFileName + "String_Node_Str"+ bitarchiveName+ "String_Node_Str"+ reportedChecksum+ "String_Node_Str");
    ad.setState(arcFileName,bitarchiveName,BitArchiveStoreState.UPLOAD_FAILED);
    considerReplyingOnStore(arcFileName);
  }
}

Fixed version (ground truth):
/** 
 * Process reporting of a checksum from a bitarchive for a specific file as part of a store operation for the file. Verify that the checksum is correct, update the BitArchiveStoreState state.
 * @param arcFileName The file being stored
 * @param bitarchiveName The bitarchive reporting a checksum
 * @param orgChecksum The original checksum
 * @param reportedChecksum The checksum calculated by the bitarchive This value is "", if arcfileName does not exist in bitarchive.
 */
private synchronized void processCheckSum(String arcFileName,String bitarchiveName,String orgChecksum,String reportedChecksum){
  log.debug("String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(arcFileName,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(bitarchiveName,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(orgChecksum,"String_Node_Str");
  ArgumentNotValid.checkNotNull(reportedChecksum,"String_Node_Str");
  if (orgChecksum.equals(reportedChecksum)) {
    ad.setState(arcFileName,bitarchiveName,BitArchiveStoreState.UPLOAD_COMPLETED);
    considerReplyingOnStore(arcFileName);
  }
 else {
    if (reportedChecksum.equals("String_Node_Str") && retryOk(bitarchiveName,arcFileName)) {
      RemoteFile rf=outstandingRemoteFiles.get(arcFileName);
      if (rf != null) {
        log.debug("String_Node_Str" + arcFileName + "String_Node_Str");
        ad.setState(rf.getName(),bitarchiveName,BitArchiveStoreState.UPLOAD_STARTED);
        connectedBitarchives.get(bitarchiveName).upload(rf);
        incRetry(bitarchiveName,arcFileName);
        return;
      }
    }
    log.warn("String_Node_Str" + arcFileName + "String_Node_Str"+ bitarchiveName+ "String_Node_Str"+ reportedChecksum+ "String_Node_Str");
    ad.setState(arcFileName,bitarchiveName,BitArchiveStoreState.UPLOAD_FAILED);
    considerReplyingOnStore(arcFileName);
  }
}