Program: 83320
Project: 83320
Buggy source:
public static void main(String[] args){
  long now=System.nanoTime();
  long totalTime=now;
  for (int i=1; i < args.length; i++) {
    addStates(args[i]);
  }
  initLogger();
  loadConfig(args[0]);
  File sourceDir=config.sourceDir;
  if (!sourceDir.exists()) {
    logger.severe("String_Node_Str" + sourceDir + "String_Node_Str");
  }
  File outputDir=config.outputDir;
  int phases=DyvilCompiler.phases.size();
  int libs=config.libraries.size();
  logger.info("String_Node_Str" + VERSION + "String_Node_Str"+ DYVIL_VERSION);
  logger.info("String_Node_Str");
  logger.fine("String_Node_Str" + Util.toTime(System.nanoTime() - now) + "String_Node_Str");
  if (DyvilCompiler.phases.contains(ICompilerPhase.RESOLVE_TYPES)) {
    now=System.nanoTime();
    for (    Library library : config.libraries) {
      library.loadLibrary();
    }
    long now1=System.nanoTime();
    now=now1 - now;
    logger.fine("String_Node_Str" + libs + (libs == 1 ? "String_Node_Str" : "String_Node_Str")+ Util.toTime(now)+ "String_Node_Str");
    Package.init();
    Types.init();
    now1=System.nanoTime() - now1;
    logger.fine("String_Node_Str" + Util.toTime(now1) + "String_Node_Str");
  }
  now=System.nanoTime();
  logger.info("String_Node_Str" + sourceDir + "String_Node_Str"+ outputDir+ "String_Node_Str");
  fileFinder.findUnits(sourceDir,outputDir,null);
  int fileCount=fileFinder.files.size();
  int unitCount=fileFinder.units.size();
  int packages=Package.rootPackage.subPackages.size();
  now=System.nanoTime() - now;
  logger.info("String_Node_Str" + packages + (packages == 1 ? "String_Node_Str" : "String_Node_Str")+ fileCount+ (fileCount == 1 ? "String_Node_Str" : "String_Node_Str")+ unitCount+ (unitCount == 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str"+ Util.toTime(now)+ "String_Node_Str");
  logger.info("String_Node_Str");
  now=System.nanoTime();
  if (debug) {
    logger.info("String_Node_Str" + phases + (phases == 1 ? "String_Node_Str" : "String_Node_Str")+ DyvilCompiler.phases);
    for (    ICompilerPhase phase : DyvilCompiler.phases) {
      long now1=System.nanoTime();
      logger.info("String_Node_Str" + phase.getName());
      try {
        phase.apply(fileFinder.units);
        now1=System.nanoTime() - now1;
        logger.info(phase.getName() + "String_Node_Str" + Util.toTime(now1)+ "String_Node_Str");
      }
 catch (      Throwable t) {
        logger.info(phase.getName() + "String_Node_Str");
        logger.throwing(phase.getName(),"String_Node_Str",t);
        logger.info("String_Node_Str");
        logger.info("String_Node_Str" + Util.toTime(System.nanoTime() - now) + "String_Node_Str");
        return;
      }
    }
  }
 else {
    for (    ICompilerPhase phase : DyvilCompiler.phases) {
      try {
        phase.apply(fileFinder.units);
      }
 catch (      Throwable t) {
        logger.throwing(phase.getName(),"String_Node_Str",t);
        logger.info("String_Node_Str");
        logger.info("String_Node_Str" + Util.toTime(System.nanoTime() - now) + "String_Node_Str");
        return;
      }
    }
  }
  long l=System.nanoTime();
  logger.info("String_Node_Str");
  logger.info("String_Node_Str" + Util.toTime(l - now) + "String_Node_Str"+ Util.toTime(l - totalTime)+ "String_Node_Str");
}

Fixed version (ground truth):
public static void main(String[] args){
  long now=System.nanoTime();
  long totalTime=now;
  for (int i=1; i < args.length; i++) {
    addStates(args[i]);
  }
  initLogger();
  loadConfig(args[0]);
  File sourceDir=config.sourceDir;
  if (!sourceDir.exists()) {
    logger.severe("String_Node_Str" + sourceDir + "String_Node_Str");
  }
  File outputDir=config.outputDir;
  int phases=DyvilCompiler.phases.size();
  int libs=config.libraries.size();
  logger.info("String_Node_Str" + VERSION + "String_Node_Str"+ DYVIL_VERSION);
  logger.info("String_Node_Str");
  logger.fine("String_Node_Str" + Util.toTime(System.nanoTime() - now) + "String_Node_Str");
  if (DyvilCompiler.phases.contains(ICompilerPhase.RESOLVE_TYPES)) {
    now=System.nanoTime();
    for (    Library library : config.libraries) {
      library.loadLibrary();
    }
    long now1=System.nanoTime();
    now=now1 - now;
    logger.fine("String_Node_Str" + libs + (libs == 1 ? "String_Node_Str" : "String_Node_Str")+ Util.toTime(now)+ "String_Node_Str");
    Package.init();
    Types.init();
    now1=System.nanoTime() - now1;
    logger.fine("String_Node_Str" + Util.toTime(now1) + "String_Node_Str");
  }
  now=System.nanoTime();
  logger.info("String_Node_Str" + sourceDir + "String_Node_Str"+ outputDir+ "String_Node_Str");
  config.findUnits(fileFinder);
  int fileCount=fileFinder.files.size();
  int unitCount=fileFinder.units.size();
  int packages=Package.rootPackage.subPackages.size();
  now=System.nanoTime() - now;
  logger.info("String_Node_Str" + packages + (packages == 1 ? "String_Node_Str" : "String_Node_Str")+ fileCount+ (fileCount == 1 ? "String_Node_Str" : "String_Node_Str")+ unitCount+ (unitCount == 1 ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str"+ Util.toTime(now)+ "String_Node_Str");
  logger.info("String_Node_Str");
  now=System.nanoTime();
  if (debug) {
    logger.info("String_Node_Str" + phases + (phases == 1 ? "String_Node_Str" : "String_Node_Str")+ DyvilCompiler.phases);
    for (    ICompilerPhase phase : DyvilCompiler.phases) {
      long now1=System.nanoTime();
      logger.info("String_Node_Str" + phase.getName());
      try {
        phase.apply(fileFinder.units);
        now1=System.nanoTime() - now1;
        logger.info(phase.getName() + "String_Node_Str" + Util.toTime(now1)+ "String_Node_Str");
      }
 catch (      Throwable t) {
        logger.info(phase.getName() + "String_Node_Str");
        logger.throwing(phase.getName(),"String_Node_Str",t);
        logger.info("String_Node_Str");
        logger.info("String_Node_Str" + Util.toTime(System.nanoTime() - now) + "String_Node_Str");
        return;
      }
    }
  }
 else {
    for (    ICompilerPhase phase : DyvilCompiler.phases) {
      try {
        phase.apply(fileFinder.units);
      }
 catch (      Throwable t) {
        logger.throwing(phase.getName(),"String_Node_Str",t);
        logger.info("String_Node_Str");
        logger.info("String_Node_Str" + Util.toTime(System.nanoTime() - now) + "String_Node_Str");
        return;
      }
    }
  }
  long l=System.nanoTime();
  logger.info("String_Node_Str");
  logger.info("String_Node_Str" + Util.toTime(l - now) + "String_Node_Str"+ Util.toTime(l - totalTime)+ "String_Node_Str");
}