Program: 89902
Project: 89902
Buggy source:
/** 
 * Retrieves all the checksum from the replica through a  GetAllChecksumMessage. This is the checksum archive alternative to running a ChecksumBatchJob. 
 * @param replicaId The id of the replica from which the checksums should be retrieved.
 * @return A list of ChecksumEntries which is the results of the GetAllChecksumMessage.
 * @see dk.netarkivet.archive.checksum.distribute.GetAllChecksumMessage
 */
public File getAllChecksums(String replicaId){
  ArgumentNotValid.checkNotNullOrEmpty(replicaId,"String_Node_Str");
  log.debug("String_Node_Str" + replicaId + "String_Node_Str");
  long start=System.currentTimeMillis();
  GetAllChecksumMessage gacMsg=new GetAllChecksumMessage(Channels.getTheRepos(),replyQ,replicaId);
  NetarkivetMessage replyNetMsg=sendAndWaitForOneReply(gacMsg,getTimeout);
  long timePassed=System.currentTimeMillis() - start;
  log.debug("String_Node_Str" + (timePassed / 1000) + "String_Node_Str");
  if (replyNetMsg == null) {
    log.info("String_Node_Str" + (getTimeout / 1000) + "String_Node_Str");
    return null;
  }
  GetAllChecksumMessage replyCSMsg;
  try {
    replyCSMsg=(GetAllChecksumMessage)replyNetMsg;
  }
 catch (  ClassCastException e) {
    String errorMsg="String_Node_Str" + replyNetMsg;
    log.warn(errorMsg,e);
    throw new IOFailure(errorMsg,e);
  }
  try {
    File result=File.createTempFile("String_Node_Str","String_Node_Str");
    replyCSMsg.getData(result);
    return result;
  }
 catch (  IOException e) {
    String errMsg="String_Node_Str" + "String_Node_Str" + replyCSMsg;
    log.warn(errMsg);
    throw new IOFailure(errMsg,e);
  }
}

Fixed version (ground truth):
/** 
 * Retrieves all the checksum from the replica through a GetAllChecksumMessage. This is the checksum archive alternative to running a ChecksumBatchJob.
 * @param replicaId The id of the replica from which the checksums should beretrieved.
 * @return A list of ChecksumEntries which is the results of theGetAllChecksumMessage.
 * @see dk.netarkivet.archive.checksum.distribute.GetAllChecksumMessage
 */
public File getAllChecksums(String replicaId){
  ArgumentNotValid.checkNotNullOrEmpty(replicaId,"String_Node_Str");
  log.debug("String_Node_Str" + replicaId + "String_Node_Str");
  long start=System.currentTimeMillis();
  GetAllChecksumMessage gacMsg=new GetAllChecksumMessage(Channels.getTheRepos(),replyQ,replicaId);
  NetarkivetMessage replyNetMsg=sendAndWaitForOneReply(gacMsg,getTimeout);
  long timePassed=System.currentTimeMillis() - start;
  log.debug("String_Node_Str" + (timePassed / 1000) + "String_Node_Str");
  if (replyNetMsg == null) {
    log.info("String_Node_Str" + (getTimeout / 1000) + "String_Node_Str");
    return null;
  }
  GetAllChecksumMessage replyCSMsg;
  try {
    replyCSMsg=(GetAllChecksumMessage)replyNetMsg;
  }
 catch (  ClassCastException e) {
    String errorMsg="String_Node_Str" + replyNetMsg;
    log.warn(errorMsg,e);
    throw new IOFailure(errorMsg,e);
  }
  try {
    File result=File.createTempFile("String_Node_Str","String_Node_Str");
    replyCSMsg.getData(result);
    return result;
  }
 catch (  IOException e) {
    String errMsg="String_Node_Str" + "String_Node_Str" + replyCSMsg;
    log.warn(errMsg);
    throw new IOFailure(errMsg,e);
  }
}