Program: 3587
Project: 3587
Buggy source:
/** 
 * read the input file and populate all the class globals with the contents The values that come from this file form the basis of the analysis report
 * @param input   the aggregator file
 */
public static void readInput(String input) throws IOException, ParseException {
  FileReader fr=null;
  BufferedReader br=null;
  String record=null;
  try {
    fr=new FileReader(input);
    br=new BufferedReader(fr);
  }
 catch (  IOException e) {
    System.out.println("String_Node_Str");
    System.exit(0);
  }
  while ((record=br.readLine()) != null) {
    Matcher matchReal=real.matcher(record);
    String section=null;
    String key=null;
    String value=null;
    String left=null;
    if (matchReal.matches()) {
      left=matchReal.group(1).trim();
      value=matchReal.group(2).trim();
      StringTokenizer tokens=new StringTokenizer(left,"String_Node_Str");
      int numTokens=tokens.countTokens();
      if (tokens.hasMoreTokens()) {
        section=tokens.nextToken();
        if (numTokens > 1) {
          key=left.substring(section.length() + 1);
        }
 else {
          key="String_Node_Str";
        }
      }
    }
 else {
      continue;
    }
    DateFormat df=DateFormat.getInstance();
    if (section.equals("String_Node_Str")) {
      archiveStats.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      actionAggregator.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      userAggregator.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      searchAggregator.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      itemAggregator.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      userEmail=value;
    }
    if (section.equals("String_Node_Str")) {
      itemFloor=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      searchFloor=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      url=value;
    }
    if (section.equals("String_Node_Str")) {
      itemLookup=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      try {
        avgItemViews=Integer.parseInt(value);
      }
 catch (      NumberFormatException e) {
        avgItemViews=0;
      }
    }
    if (section.equals("String_Node_Str")) {
      serverName=value;
    }
    if (section.equals("String_Node_Str")) {
      name=value;
    }
    if (section.equals("String_Node_Str")) {
      startDate=df.parse(value);
    }
    if (section.equals("String_Node_Str")) {
      endDate=df.parse(value);
    }
    if (section.equals("String_Node_Str")) {
      processTime=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      generalSummary.add(value);
    }
    if (section.equals("String_Node_Str")) {
      logLines=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      warnings=Integer.parseInt(value);
    }
  }
  br.close();
  fr.close();
}

Fixed version (ground truth):
/** 
 * read the input file and populate all the class globals with the contents The values that come from this file form the basis of the analysis report
 * @param input   the aggregator file
 */
public static void readInput(String input) throws IOException, ParseException {
  FileReader fr=null;
  BufferedReader br=null;
  String record=null;
  try {
    fr=new FileReader(input);
    br=new BufferedReader(fr);
  }
 catch (  IOException e) {
    System.out.println("String_Node_Str");
    System.exit(0);
  }
  while ((record=br.readLine()) != null) {
    Matcher matchReal=real.matcher(record);
    String section=null;
    String key=null;
    String value=null;
    String left=null;
    if (matchReal.matches()) {
      left=matchReal.group(1).trim();
      value=matchReal.group(2).trim();
      StringTokenizer tokens=new StringTokenizer(left,"String_Node_Str");
      int numTokens=tokens.countTokens();
      if (tokens.hasMoreTokens()) {
        section=tokens.nextToken();
        if (numTokens > 1) {
          key=left.substring(section.length() + 1);
        }
 else {
          key="String_Node_Str";
        }
      }
    }
 else {
      continue;
    }
    SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str");
    if (section.equals("String_Node_Str")) {
      archiveStats.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      actionAggregator.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      userAggregator.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      searchAggregator.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      itemAggregator.put(key,value);
    }
    if (section.equals("String_Node_Str")) {
      userEmail=value;
    }
    if (section.equals("String_Node_Str")) {
      itemFloor=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      searchFloor=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      url=value;
    }
    if (section.equals("String_Node_Str")) {
      itemLookup=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      try {
        avgItemViews=Integer.parseInt(value);
      }
 catch (      NumberFormatException e) {
        avgItemViews=0;
      }
    }
    if (section.equals("String_Node_Str")) {
      serverName=value;
    }
    if (section.equals("String_Node_Str")) {
      name=value;
    }
    if (section.equals("String_Node_Str")) {
      startDate=sdf.parse(value);
    }
    if (section.equals("String_Node_Str")) {
      endDate=sdf.parse(value);
    }
    if (section.equals("String_Node_Str")) {
      processTime=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      generalSummary.add(value);
    }
    if (section.equals("String_Node_Str")) {
      logLines=Integer.parseInt(value);
    }
    if (section.equals("String_Node_Str")) {
      warnings=Integer.parseInt(value);
    }
  }
  br.close();
  fr.close();
}