Program: 90113
Project: 90113
Buggy source:
/** 
 * Called when we receive replies on our checksum batch jobs.
 * @param msg a BatchReplyMessage
 */
synchronized public void onBatchReply(BatchReplyMessage msg){
  ArgumentNotValid.checkNotNull(msg,"String_Node_Str");
  log.debug("String_Node_Str" + msg + "String_Node_Str");
  String arcfileName=outstandingChecksumFiles.remove(msg.getReplyOfId());
  if (arcfileName != null) {
    if (!msg.isOk()) {
      log.warn("String_Node_Str" + msg.getID() + "String_Node_Str"+ "String_Node_Str"+ msg.getErrMsg()+ "String_Node_Str"+ "String_Node_Str");
    }
    String reportedChecksum;
    RemoteFile rf=msg.getResultFile();
    if (rf == null || rf instanceof NullRemoteFile) {
      log.debug("String_Node_Str" + msg.getID() + "String_Node_Str"+ "String_Node_Str"+ arcfileName+ "String_Node_Str");
      reportedChecksum="String_Node_Str";
    }
 else {
      File outputFile=new File(FileUtils.getTempDir(),msg.getReplyTo().getName() + "String_Node_Str" + arcfileName+ "String_Node_Str");
      try {
        rf.copyTo(outputFile);
        reportedChecksum=readChecksum(outputFile,arcfileName);
      }
 catch (      IOFailure e) {
        log.warn("String_Node_Str" + "String_Node_Str" + arcfileName + "String_Node_Str",e);
        reportedChecksum="String_Node_Str";
      }
      try {
        FileUtils.removeRecursively(outputFile);
      }
 catch (      IOFailure e) {
        log.warn("String_Node_Str" + "String_Node_Str" + outputFile + "String_Node_Str",e);
      }
      try {
        rf.cleanup();
      }
 catch (      IOFailure e) {
        log.warn("String_Node_Str" + "String_Node_Str" + rf.getName() + "String_Node_Str",e);
      }
    }
    String orgCheckSum=ad.getCheckSum(arcfileName);
    String bitarchive=resolveBitarchiveID(msg.getReplyTo().getName());
    processCheckSum(arcfileName,bitarchive,orgCheckSum,reportedChecksum);
  }
 else {
    log.warn("String_Node_Str" + "String_Node_Str" + msg.getReplyOfId() + "String_Node_Str"+ msg.toString()+ "String_Node_Str"+ outstandingChecksumFiles.keySet().toString());
  }
}

Fixed version (ground truth):
/** 
 * Called when we receive replies on our checksum batch jobs.
 * @param msg a BatchReplyMessage
 */
public synchronized void onBatchReply(BatchReplyMessage msg){
  ArgumentNotValid.checkNotNull(msg,"String_Node_Str");
  log.debug("String_Node_Str" + msg + "String_Node_Str");
  String arcfileName=outstandingChecksumFiles.remove(msg.getReplyOfId());
  if (arcfileName != null) {
    if (!msg.isOk()) {
      log.warn("String_Node_Str" + msg.getID() + "String_Node_Str"+ "String_Node_Str"+ msg.getErrMsg()+ "String_Node_Str"+ "String_Node_Str");
    }
    String reportedChecksum;
    RemoteFile rf=msg.getResultFile();
    if (rf == null || rf instanceof NullRemoteFile) {
      log.debug("String_Node_Str" + msg.getID() + "String_Node_Str"+ "String_Node_Str"+ arcfileName+ "String_Node_Str");
      reportedChecksum="String_Node_Str";
    }
 else {
      File outputFile=new File(FileUtils.getTempDir(),msg.getReplyTo().getName() + "String_Node_Str" + arcfileName+ "String_Node_Str");
      try {
        rf.copyTo(outputFile);
        reportedChecksum=readChecksum(outputFile,arcfileName);
      }
 catch (      IOFailure e) {
        log.warn("String_Node_Str" + "String_Node_Str" + arcfileName + "String_Node_Str",e);
        reportedChecksum="String_Node_Str";
      }
      try {
        FileUtils.removeRecursively(outputFile);
      }
 catch (      IOFailure e) {
        log.warn("String_Node_Str" + "String_Node_Str" + outputFile + "String_Node_Str",e);
      }
      try {
        rf.cleanup();
      }
 catch (      IOFailure e) {
        log.warn("String_Node_Str" + "String_Node_Str" + rf.getName() + "String_Node_Str",e);
      }
    }
    String orgCheckSum=ad.getCheckSum(arcfileName);
    String bitarchive=resolveBitarchiveID(msg.getReplyTo().getName());
    processCheckSum(arcfileName,bitarchive,orgCheckSum,reportedChecksum);
  }
 else {
    log.warn("String_Node_Str" + "String_Node_Str" + msg.getReplyOfId() + "String_Node_Str"+ msg.toString()+ "String_Node_Str"+ outstandingChecksumFiles.keySet().toString());
  }
}