Program: 36993
Project: 36993
Buggy source:
public static void main(String[] args){
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  String path=args[0];
  Inpath=path;
  String runas=args[1];
  if (Arrays.asList(args).contains("String_Node_Str")) {
    int i=Arrays.asList(args).indexOf("String_Node_Str");
    outputDest=args[i + 1];
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    int i=Arrays.asList(args).indexOf("String_Node_Str");
    learnheaders=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    doStats=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    TypeClassify=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    ComplexClassify=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    doIE=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    printHelp();
  }
  if (TypeClassify)   SimpleTableClassifier.init(TablInExMain.Inpath);
  if (ComplexClassify)   SimpleTableClassifier.initComplexity(Inpath);
  System.out.println("String_Node_Str" + path);
  File Dir=new File(path);
  File[] files=Dir.listFiles();
  Article[] articles=new Article[files.length];
  if (runas.toLowerCase().equals("String_Node_Str")) {
    articles=runReadingloop(articles,files,files.length,PMCXMLReader.class);
  }
  for (int i=0; i < articles.length; i++) {
    if (articles[i] != null && articles[i].getTables() != null)     for (int j=0; j < articles[i].getTables().length; j++) {
      Table t=articles[i].getTables()[j];
      t=TableSimplifier.MergeHeaders(t);
      t=TableSimplifier.MergeStubs(t);
    }
  }
  if (doIE) {
    SimpleIE ie=new SimpleIE(Inpath);
    for (int i=0; i < articles.length; i++) {
      ie.ExtractInformation(articles[i]);
    }
  }
  if (learnheaders) {
    LinkedHashMap lm=Utilities.sortHashMapByValuesD(headermap);
    Object[] ss=lm.keySet().toArray();
    String[] sa=new String[ss.length];
    int k=0;
    for (    Object o : ss) {
      sa[k]=(String)ss[k];
      k++;
    }
    PrintWriter writer;
    try {
      writer=new PrintWriter("String_Node_Str","String_Node_Str");
      for (      String name : sa) {
        String key=name.toString();
        String value=lm.get(name).toString();
        writer.println(key + "String_Node_Str" + value);
      }
      writer.close();
    }
 catch (    FileNotFoundException e) {
      e.printStackTrace();
    }
catch (    UnsupportedEncodingException e) {
      e.printStackTrace();
    }
  }
  Statistics.CalculateStatistics();
  String stats=Statistics.makeOutputStatisticString();
  System.out.print(stats);
}

Fixed version (ground truth):
public static void main(String[] args){
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  String path=args[0];
  Inpath=path;
  String runas="String_Node_Str";
  if (args.length > 1)   runas=args[1];
  if (Arrays.asList(args).contains("String_Node_Str")) {
    int i=Arrays.asList(args).indexOf("String_Node_Str");
    outputDest=args[i + 1];
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    int i=Arrays.asList(args).indexOf("String_Node_Str");
    learnheaders=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    doStats=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    TypeClassify=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    doXMLInput=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    ComplexClassify=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    doIE=true;
  }
  if (Arrays.asList(args).contains("String_Node_Str")) {
    printHelp();
    return;
  }
  if (TypeClassify)   SimpleTableClassifier.init(TablInExMain.Inpath);
  if (ComplexClassify)   SimpleTableClassifier.initComplexity(Inpath);
  System.out.println("String_Node_Str" + path);
  File Dir=new File(path);
  File[] files=Dir.listFiles();
  Article[] articles=new Article[files.length];
  if (runas.toLowerCase().equals("String_Node_Str")) {
    articles=runReadingloop(articles,files,files.length,PMCXMLReader.class);
  }
  for (int i=0; i < articles.length; i++) {
    if (articles[i] != null && articles[i].getTables() != null)     for (int j=0; j < articles[i].getTables().length; j++) {
      Table t=articles[i].getTables()[j];
      t=TableSimplifier.MergeHeaders(t);
      t=TableSimplifier.MergeStubs(t);
    }
  }
  if (doIE) {
    SimpleIE ie=new SimpleIE(Inpath);
    for (int i=0; i < articles.length; i++) {
      ie.ExtractInformation(articles[i]);
    }
  }
  if (learnheaders) {
    LinkedHashMap lm=Utilities.sortHashMapByValuesD(headermap);
    Object[] ss=lm.keySet().toArray();
    String[] sa=new String[ss.length];
    int k=0;
    for (    Object o : ss) {
      sa[k]=(String)ss[k];
      k++;
    }
    PrintWriter writer;
    try {
      writer=new PrintWriter("String_Node_Str","String_Node_Str");
      for (      String name : sa) {
        String key=name.toString();
        String value=lm.get(name).toString();
        writer.println(key + "String_Node_Str" + value);
      }
      writer.close();
    }
 catch (    FileNotFoundException e) {
      e.printStackTrace();
    }
catch (    UnsupportedEncodingException e) {
      e.printStackTrace();
    }
  }
  Statistics.CalculateStatistics();
  String stats=Statistics.makeOutputStatisticString();
  System.out.print(stats);
}