Program: 187025
Project: 187025
Buggy source:
private boolean run(ExecHelper exec){
  project=null;
  ProjectConfig pConfig=new ProjectConfig(config);
  try {
    project=new Project(pConfig);
    project.setTopLevelLooger(tlLogger);
    Report.initVelocity(config);
    tlLogger.info("String_Node_Str");
    project.load();
    MethodInfo largestMethod=project.getProcessorModel().getMethodCache().checkCache();
    int minWords=MiscUtils.bytesToWords(largestMethod.getCode().getLength());
    System.out.println("String_Node_Str" + minWords + "String_Node_Str"+ largestMethod.getFQMethodName());
    project.recordMetric("String_Node_Str",largestMethod.getFQMethodName(),minWords);
  }
 catch (  Exception e) {
    exec.logException("String_Node_Str",e);
    return false;
  }
  boolean succeed=false;
  try {
    project.setGenerateWCETReport(false);
    tlLogger.info("String_Node_Str" + project.computeCyclomaticComplexity(project.getTargetMethod()));
    WcetCost mincachecost, ah, am, wcet;
{
      long start, stop;
      RecursiveAnalysis<StaticCacheApproximation> an=new RecursiveAnalysis<StaticCacheApproximation>(project,new RecursiveAnalysis.LocalIPETStrategy());
      LpSolveWrapper.resetSolverTime();
      start=System.nanoTime();
      ah=an.computeWCET(project.getTargetMethod(),StaticCacheApproximation.ALWAYS_HIT);
      stop=System.nanoTime();
      reportSpecial("String_Node_Str",ah,start,stop,LpSolveWrapper.getSolverTime());
      if (project.getProjectConfig().useUppaal() || project.getConfig().getOption(CacheConfig.STATIC_CACHE_APPROX).needsInterProcIPET()) {
        project.setGenerateWCETReport(true);
      }
      am=an.computeWCET(project.getTargetMethod(),StaticCacheApproximation.ALWAYS_MISS);
      reportSpecial("String_Node_Str",am,0,0,0);
      project.setGenerateWCETReport(false);
      boolean missOnceOnInvoke=config.getOption(CacheConfig.ASSUME_MISS_ONCE_ON_INVOKE);
      config.setOption(CacheConfig.ASSUME_MISS_ONCE_ON_INVOKE,true);
      GlobalAnalysis gb=new GlobalAnalysis(project);
      LpSolveWrapper.resetSolverTime();
      start=System.nanoTime();
      mincachecost=gb.computeWCET(project.getTargetMethod(),StaticCacheApproximation.ALL_FIT);
      stop=System.nanoTime();
      reportSpecial("String_Node_Str",mincachecost,start,stop,LpSolveWrapper.getSolverTime());
      config.setOption(CacheConfig.ASSUME_MISS_ONCE_ON_INVOKE,missOnceOnInvoke);
    }
    tlLogger.info("String_Node_Str");
    project.setGenerateWCETReport(true);
    if (project.getProjectConfig().useUppaal()) {
      UppaalAnalysis an=new UppaalAnalysis(tlLogger,project,project.getOutDir("String_Node_Str"));
      config.checkPresent(UppAalConfig.UPPAAL_VERIFYTA_BINARY);
      long start=System.nanoTime();
      wcet=an.computeWCET(project.getTargetMethod(),am.getCost());
      long stop=System.nanoTime();
      reportUppaal(wcet,start,stop,an.getSearchtime(),an.getSolvertimemax());
    }
 else {
      StaticCacheApproximation staticCacheApprox=config.getOption(CacheConfig.STATIC_CACHE_APPROX);
      RecursiveWCETStrategy<StaticCacheApproximation> recStrategy;
      if (staticCacheApprox == StaticCacheApproximation.ALL_FIT) {
        recStrategy=new GlobalAnalysis.GlobalIPETStrategy();
      }
 else {
        recStrategy=new RecursiveAnalysis.LocalIPETStrategy();
      }
      RecursiveAnalysis<StaticCacheApproximation> an=new RecursiveAnalysis<StaticCacheApproximation>(project,recStrategy);
      LpSolveWrapper.resetSolverTime();
      long start=System.nanoTime();
      wcet=an.computeWCET(project.getTargetMethod(),config.getOption(CacheConfig.STATIC_CACHE_APPROX));
      long stop=System.nanoTime();
      report(wcet,start,stop,LpSolveWrapper.getSolverTime());
    }
    tlLogger.info("String_Node_Str" + wcet);
    succeed=true;
  }
 catch (  Exception e) {
    exec.logException("String_Node_Str",e);
  }
  if (!project.doWriteReport()) {
    tlLogger.info("String_Node_Str");
    return succeed;
  }
  try {
    tlLogger.info("String_Node_Str");
    project.getReport().generateInfoPages();
    tlLogger.info("String_Node_Str");
    project.writeReport();
    tlLogger.info("String_Node_Str" + pConfig.getOutDir());
  }
 catch (  Exception e) {
    exec.logException("String_Node_Str",e);
    return false;
  }
  return succeed;
}

Fixed version (ground truth):
private boolean run(ExecHelper exec){
  project=null;
  ProjectConfig pConfig=new ProjectConfig(config);
  try {
    project=new Project(pConfig);
    project.setTopLevelLooger(tlLogger);
    Report.initVelocity(config);
    tlLogger.info("String_Node_Str");
    project.load();
    MethodInfo largestMethod=project.getProcessorModel().getMethodCache().checkCache();
    int minWords=MiscUtils.bytesToWords(largestMethod.getCode().getCode().length);
    System.out.println("String_Node_Str" + minWords + "String_Node_Str"+ largestMethod.getFQMethodName());
    project.recordMetric("String_Node_Str",largestMethod.getFQMethodName(),minWords);
  }
 catch (  Exception e) {
    exec.logException("String_Node_Str",e);
    return false;
  }
  boolean succeed=false;
  try {
    project.setGenerateWCETReport(false);
    tlLogger.info("String_Node_Str" + project.computeCyclomaticComplexity(project.getTargetMethod()));
    WcetCost mincachecost, ah, am, wcet;
{
      long start, stop;
      RecursiveAnalysis<StaticCacheApproximation> an=new RecursiveAnalysis<StaticCacheApproximation>(project,new RecursiveAnalysis.LocalIPETStrategy());
      LpSolveWrapper.resetSolverTime();
      start=System.nanoTime();
      ah=an.computeWCET(project.getTargetMethod(),StaticCacheApproximation.ALWAYS_HIT);
      stop=System.nanoTime();
      reportSpecial("String_Node_Str",ah,start,stop,LpSolveWrapper.getSolverTime());
      if (project.getProjectConfig().useUppaal() || project.getConfig().getOption(CacheConfig.STATIC_CACHE_APPROX).needsInterProcIPET()) {
        project.setGenerateWCETReport(true);
      }
      am=an.computeWCET(project.getTargetMethod(),StaticCacheApproximation.ALWAYS_MISS);
      reportSpecial("String_Node_Str",am,0,0,0);
      project.setGenerateWCETReport(false);
      boolean missOnceOnInvoke=config.getOption(CacheConfig.ASSUME_MISS_ONCE_ON_INVOKE);
      config.setOption(CacheConfig.ASSUME_MISS_ONCE_ON_INVOKE,true);
      GlobalAnalysis gb=new GlobalAnalysis(project);
      LpSolveWrapper.resetSolverTime();
      start=System.nanoTime();
      mincachecost=gb.computeWCET(project.getTargetMethod(),StaticCacheApproximation.ALL_FIT);
      stop=System.nanoTime();
      reportSpecial("String_Node_Str",mincachecost,start,stop,LpSolveWrapper.getSolverTime());
      config.setOption(CacheConfig.ASSUME_MISS_ONCE_ON_INVOKE,missOnceOnInvoke);
    }
    tlLogger.info("String_Node_Str");
    project.setGenerateWCETReport(true);
    if (project.getProjectConfig().useUppaal()) {
      UppaalAnalysis an=new UppaalAnalysis(tlLogger,project,project.getOutDir("String_Node_Str"));
      config.checkPresent(UppAalConfig.UPPAAL_VERIFYTA_BINARY);
      long start=System.nanoTime();
      wcet=an.computeWCET(project.getTargetMethod(),am.getCost());
      long stop=System.nanoTime();
      reportUppaal(wcet,start,stop,an.getSearchtime(),an.getSolvertimemax());
    }
 else {
      StaticCacheApproximation staticCacheApprox=config.getOption(CacheConfig.STATIC_CACHE_APPROX);
      RecursiveWCETStrategy<StaticCacheApproximation> recStrategy;
      if (staticCacheApprox == StaticCacheApproximation.ALL_FIT) {
        recStrategy=new GlobalAnalysis.GlobalIPETStrategy();
      }
 else {
        recStrategy=new RecursiveAnalysis.LocalIPETStrategy();
      }
      RecursiveAnalysis<StaticCacheApproximation> an=new RecursiveAnalysis<StaticCacheApproximation>(project,recStrategy);
      LpSolveWrapper.resetSolverTime();
      long start=System.nanoTime();
      wcet=an.computeWCET(project.getTargetMethod(),config.getOption(CacheConfig.STATIC_CACHE_APPROX));
      long stop=System.nanoTime();
      report(wcet,start,stop,LpSolveWrapper.getSolverTime());
    }
    tlLogger.info("String_Node_Str" + wcet);
    succeed=true;
  }
 catch (  Exception e) {
    exec.logException("String_Node_Str",e);
  }
  if (!project.doWriteReport()) {
    tlLogger.info("String_Node_Str");
    return succeed;
  }
  try {
    tlLogger.info("String_Node_Str");
    project.getReport().generateInfoPages();
    tlLogger.info("String_Node_Str");
    project.writeReport();
    tlLogger.info("String_Node_Str" + pConfig.getOutDir());
  }
 catch (  Exception e) {
    exec.logException("String_Node_Str",e);
    return false;
  }
  return succeed;
}