Program: 90122
Project: 90122
Buggy source:
/** 
 * In this constructor, the server creates an instance of the HarvestController, uploads any arc-files from incomplete harvests. Then it starts listening for new doOneCrawl messages, unless there is no available space. In that case, it sends a notication to the administrator and pauses.
 * @throws PermissionDenied If the serverdir or oldjobsdir can't be created
 * @throws IOFailure If harvestInfoFile contains invalid data
 * @throws UnknownID if the settings file does not specify a valid queuepriority.
 */
private HarvestControllerServer() throws IOFailure {
  log.info(STARTING_MESSAGE);
  File serverDir=new File(Settings.get(HarvesterSettings.HARVEST_CONTROLLER_SERVERDIR));
  ApplicationUtils.dirMustExist(serverDir);
  log.info("String_Node_Str" + serverDir + "String_Node_Str");
  minSpaceRequired=Settings.getLong(HarvesterSettings.HARVEST_SERVERDIR_MINSPACE);
  if (minSpaceRequired <= 0L) {
    log.warn("String_Node_Str" + minSpaceRequired);
    throw new ArgumentNotValid("String_Node_Str" + minSpaceRequired);
  }
  log.info("String_Node_Str" + minSpaceRequired + "String_Node_Str");
  controller=HarvestController.getInstance();
  System.setProperty(HERITRIX_VERSION_PROPERTY,Constants.getHeritrixVersionString());
  System.setProperty(HERITRIX_QUEUE_ASSIGNMENT_POLICY_PROPERTY,"String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
  con=JMSConnectionFactory.getInstance();
  log.debug("String_Node_Str");
  processOldJobs();
  JobPriority p=JobPriority.valueOf(Settings.get(HarvesterSettings.HARVEST_CONTROLLER_PRIORITY));
switch (p) {
case HIGHPRIORITY:
    jobChannel=Channels.getAnyHighpriorityHaco();
  break;
case LOWPRIORITY:
jobChannel=Channels.getAnyLowpriorityHaco();
break;
default :
throw new UnknownID(p + "String_Node_Str");
}
long availableSpace=FileUtils.getBytesFree(serverDir);
if (availableSpace > minSpaceRequired) {
log.info("String_Node_Str" + jobChannel + "String_Node_Str");
con.setListener(jobChannel,this);
log.info(STARTED_MESSAGE);
}
 else {
String PAUSED_MESSAGE="String_Node_Str" + availableSpace + "String_Node_Str";
log.warn(PAUSED_MESSAGE);
NotificationsFactory.getInstance().errorEvent(PAUSED_MESSAGE);
}
}

Fixed version (ground truth):
/** 
 * In this constructor, the server creates an instance of the HarvestController, uploads any arc-files from incomplete harvests. Then it starts listening for new doOneCrawl messages, unless there is no available space. In that case, it sends a notification to the administrator and pauses.
 * @throws PermissionDenied If the serverdir or oldjobsdir can't be created
 * @throws IOFailure If harvestInfoFile contains invalid data
 * @throws UnknownID if the settings file does not specify a valid queuepriority.
 */
private HarvestControllerServer() throws IOFailure {
  log.info(STARTING_MESSAGE);
  File serverDir=new File(Settings.get(HarvesterSettings.HARVEST_CONTROLLER_SERVERDIR));
  ApplicationUtils.dirMustExist(serverDir);
  log.info("String_Node_Str" + serverDir + "String_Node_Str");
  minSpaceRequired=Settings.getLong(HarvesterSettings.HARVEST_SERVERDIR_MINSPACE);
  if (minSpaceRequired <= 0L) {
    log.warn("String_Node_Str" + minSpaceRequired);
    throw new ArgumentNotValid("String_Node_Str" + minSpaceRequired);
  }
  log.info("String_Node_Str" + minSpaceRequired + "String_Node_Str");
  controller=HarvestController.getInstance();
  System.setProperty(HERITRIX_VERSION_PROPERTY,Constants.getHeritrixVersionString());
  System.setProperty(HERITRIX_QUEUE_ASSIGNMENT_POLICY_PROPERTY,"String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
  con=JMSConnectionFactory.getInstance();
  log.debug("String_Node_Str");
  processOldJobs();
  JobPriority p=JobPriority.valueOf(Settings.get(HarvesterSettings.HARVEST_CONTROLLER_PRIORITY));
switch (p) {
case HIGHPRIORITY:
    jobChannel=Channels.getAnyHighpriorityHaco();
  break;
case LOWPRIORITY:
jobChannel=Channels.getAnyLowpriorityHaco();
break;
default :
throw new UnknownID(p + "String_Node_Str");
}
long availableSpace=FileUtils.getBytesFree(serverDir);
if (availableSpace > minSpaceRequired) {
log.info("String_Node_Str" + jobChannel + "String_Node_Str");
con.setListener(jobChannel,this);
log.info(STARTED_MESSAGE);
}
 else {
String PAUSED_MESSAGE="String_Node_Str" + availableSpace + "String_Node_Str";
log.warn(PAUSED_MESSAGE);
NotificationsFactory.getInstance().errorEvent(PAUSED_MESSAGE);
}
}