Program: 89550
Project: 89550
Buggy source:
/** 
 * Create a BnfHeritrixController object.
 * @param files Files that are used to set up Heritrix.
 */
public AbstractRestHeritrixController(Heritrix3Files files){
  ArgumentNotValid.checkNotNull(files,"String_Node_Str");
  this.files=files;
  SystemUtils.checkPortNotUsed(guiPort);
  hostName=SystemUtils.getLocalHostName();
  try {
    log.info("String_Node_Str",this,files.getCrawlDir());
    String zipFileStr=files.getHeritrixZip().getAbsolutePath();
    heritrixBaseDir=files.getHeritrixBaseDir();
    if (!heritrixBaseDir.isDirectory()) {
      heritrixBaseDir.mkdirs();
    }
    if (!heritrixBaseDir.isDirectory()) {
      throw new IOFailure("String_Node_Str" + heritrixBaseDir.getAbsolutePath());
    }
    log.debug("String_Node_Str");
    UnzipUtils.unzip(zipFileStr,1,heritrixBaseDir.getAbsolutePath());
    if (files.getCertificateFile() != null) {
      log.debug("String_Node_Str");
      Heritrix3Wrapper.copyFileAs(files.getCertificateFile(),heritrixBaseDir,"String_Node_Str");
    }
    String[] cmd={"String_Node_Str","String_Node_Str",hostName,"String_Node_Str",Integer.toString(guiPort),"String_Node_Str",getHeritrixAdminName() + "String_Node_Str" + getHeritrixAdminPassword(),"String_Node_Str","String_Node_Str"};
    log.info("String_Node_Str",StringUtils.conjoin("String_Node_Str",cmd));
    h3launcher=CommandLauncher.getInstance();
    h3launcher.init(heritrixBaseDir,cmd);
    h3launcher.env.put("String_Node_Str","String_Node_Str");
    log.info("String_Node_Str");
    String javaOpts="String_Node_Str";
    String jvmOptsStr=Settings.get(Heritrix3Settings.HERITRIX_JVM_OPTS);
    if ((jvmOptsStr != null) && (!jvmOptsStr.isEmpty())) {
      javaOpts="String_Node_Str" + jvmOptsStr;
    }
    String javaOptsValue="String_Node_Str" + Settings.get(Heritrix3Settings.HERITRIX_HEAP_SIZE) + javaOpts;
    h3launcher.env.put("String_Node_Str",javaOptsValue);
    log.info("String_Node_Str",javaOptsValue);
    String heritrixOutValue=files.getHeritrixOutput().getAbsolutePath();
    h3launcher.env.put("String_Node_Str",heritrixOutValue);
    log.info("String_Node_Str",heritrixOutValue);
    outputPrinter=new PrintWriter(files.getHeritrixStdoutLog(),"String_Node_Str");
    errorPrinter=new PrintWriter(files.getHeritrixStderrLog(),"String_Node_Str");
    h3handler=new LaunchResultHandler(outputPrinter,errorPrinter);
    log.info("String_Node_Str");
    h3launcher.start(h3handler);
    Runtime.getRuntime().addShutdownHook(new HeritrixKiller());
    log.info("String_Node_Str");
  }
 catch (  Throwable e) {
    log.debug("String_Node_Str",e);
    throw new IOFailure("String_Node_Str",e);
  }
}

Fixed version (ground truth):
/** 
 * Create a BnfHeritrixController object.
 * @param files Files that are used to set up Heritrix.
 */
public AbstractRestHeritrixController(Heritrix3Files files){
  ArgumentNotValid.checkNotNull(files,"String_Node_Str");
  this.files=files;
  SystemUtils.checkPortNotUsed(guiPort);
  hostName=SystemUtils.getLocalHostName();
  try {
    log.info("String_Node_Str",this,files.getCrawlDir());
    String zipFileStr=files.getHeritrixZip().getAbsolutePath();
    heritrixBaseDir=files.getHeritrixBaseDir();
    if (!heritrixBaseDir.isDirectory()) {
      heritrixBaseDir.mkdirs();
    }
    if (!heritrixBaseDir.isDirectory()) {
      throw new IOFailure("String_Node_Str" + heritrixBaseDir.getAbsolutePath());
    }
    log.debug("String_Node_Str");
    UnzipUtils.unzip(zipFileStr,1,heritrixBaseDir.getAbsolutePath());
    if (files.getCertificateFile() != null) {
      log.debug("String_Node_Str");
      Heritrix3Wrapper.copyFileAs(files.getCertificateFile(),heritrixBaseDir,"String_Node_Str");
    }
    String[] cmd={"String_Node_Str","String_Node_Str",hostName,"String_Node_Str",Integer.toString(guiPort),"String_Node_Str",getHeritrixAdminName() + "String_Node_Str" + getHeritrixAdminPassword(),"String_Node_Str","String_Node_Str"};
    log.info("String_Node_Str",StringUtils.conjoin("String_Node_Str",cmd));
    h3launcher=CommandLauncher.getInstance();
    h3launcher.init(heritrixBaseDir,cmd);
    h3launcher.env.put("String_Node_Str","String_Node_Str");
    log.info("String_Node_Str");
    String javaOpts="String_Node_Str";
    String jvmOptsStr=Settings.get(Heritrix3Settings.HERITRIX_JVM_OPTS);
    if ((jvmOptsStr != null) && (!jvmOptsStr.isEmpty())) {
      javaOpts="String_Node_Str" + jvmOptsStr;
    }
    String javaOptsValue="String_Node_Str" + Settings.get(Heritrix3Settings.HERITRIX_HEAP_SIZE) + "String_Node_Str"+ javaOpts;
    h3launcher.env.put("String_Node_Str",javaOptsValue);
    log.info("String_Node_Str",javaOptsValue);
    String heritrixOutValue=files.getHeritrixOutput().getAbsolutePath();
    h3launcher.env.put("String_Node_Str",heritrixOutValue);
    log.info("String_Node_Str",heritrixOutValue);
    outputPrinter=new PrintWriter(files.getHeritrixStdoutLog(),"String_Node_Str");
    errorPrinter=new PrintWriter(files.getHeritrixStderrLog(),"String_Node_Str");
    h3handler=new LaunchResultHandler(outputPrinter,errorPrinter);
    log.info("String_Node_Str");
    h3launcher.start(h3handler);
    Runtime.getRuntime().addShutdownHook(new HeritrixKiller());
    log.info("String_Node_Str");
  }
 catch (  Throwable e) {
    log.debug("String_Node_Str",e);
    throw new IOFailure("String_Node_Str",e);
  }
}