Program: 133324
Project: 133324
Buggy source:
/** 
 * Loads the top section of the IPS framework INI file and returns the contents as a DataComponent of Entries. Each line is set as an Entry.
 * @param it Iterator over the lines of the INI file as an ArrayList
 * @return A TableComponent of Entries representing the contents at the topof the INI file.
 */
private TableComponent loadGlobalConfiguration(Iterator<String> it){
  TableComponent globalConfiguration=new TableComponent();
  globalConfiguration.setName("String_Node_Str");
  globalConfiguration.setDescription("String_Node_Str" + "String_Node_Str");
  globalConfiguration.setId(currID);
  currID++;
  String[] splitLine=null;
  ArrayList<IEntry> entries=new ArrayList<IEntry>();
  IEntry portNameTemplate=makeIPSEntry();
  IEntry implementationTemplate=makeIPSEntry();
  portNameTemplate.setName("String_Node_Str");
  implementationTemplate.setName("String_Node_Str");
  entries.add(portNameTemplate);
  entries.add(implementationTemplate);
  globalConfiguration.setRowTemplate(entries);
  line=it.next();
  while (!line.contains("String_Node_Str") && it.hasNext()) {
    if (line.contains("String_Node_Str")) {
      if (line.contains("String_Node_Str")) {
        line=line.split("String_Node_Str",2)[0];
      }
      splitLine=line.split("String_Node_Str",2);
      ArrayList<IEntry> row=new ArrayList<IEntry>();
      int rowID=globalConfiguration.addRow();
      row=globalConfiguration.getRow(rowID);
      row.get(0).setValue(splitLine[0]);
      row.get(1).setValue(splitLine[1]);
    }
    line=it.next();
  }
  if (!it.hasNext()) {
    System.err.println("String_Node_Str" + "String_Node_Str");
    return null;
  }
  return globalConfiguration;
}

Fixed version (ground truth):
/** 
 * Loads the top section of the IPS framework INI file and returns the contents as a DataComponent of Entries. Each line is set as an Entry.
 * @param it Iterator over the lines of the INI file as an ArrayList
 * @return A TableComponent of Entries representing the contents at the topof the INI file.
 */
private TableComponent loadGlobalConfiguration(Iterator<String> it){
  TableComponent globalConfiguration=new TableComponent();
  globalConfiguration.setName("String_Node_Str");
  globalConfiguration.setDescription("String_Node_Str" + "String_Node_Str");
  globalConfiguration.setId(currID);
  currID++;
  String[] splitLine=null;
  ArrayList<IEntry> entries=new ArrayList<IEntry>();
  IEntry portNameTemplate=makeIPSEntry();
  IEntry implementationTemplate=makeIPSEntry();
  portNameTemplate.setName("String_Node_Str");
  implementationTemplate.setName("String_Node_Str");
  entries.add(portNameTemplate);
  entries.add(implementationTemplate);
  globalConfiguration.setRowTemplate(entries);
  line=it.next();
  while (!line.contains("String_Node_Str") && it.hasNext()) {
    if (line.contains("String_Node_Str")) {
      if (line.contains("String_Node_Str")) {
        line=line.split("String_Node_Str",2)[0];
      }
      splitLine=line.split("String_Node_Str",2);
      if (splitLine.length < 2 || splitLine[0].trim().length() == 0) {
        continue;
      }
      ArrayList<IEntry> row=new ArrayList<IEntry>();
      int rowID=globalConfiguration.addRow();
      row=globalConfiguration.getRow(rowID);
      row.get(0).setValue(splitLine[0]);
      row.get(1).setValue(splitLine[1]);
    }
    line=it.next();
  }
  if (!it.hasNext()) {
    System.err.println("String_Node_Str" + "String_Node_Str");
    return null;
  }
  return globalConfiguration;
}