Program: 57566
Project: 57566
Buggy source:
@Override protected void parseFile(BufferedReader reader) throws IOException {
  initializeDataContainers();
  swtGuiManager.setProgressBarText("String_Node_Str" + fileName);
  String line;
  float progressBarFactor=100f / numberOfLinesInFile;
  for (int countHeaderLines=0; countHeaderLines < dataSetDescription.getNumberOfHeaderLines(); countHeaderLines++) {
    reader.readLine();
  }
  ArrayList<ColumnDescription> parsingPattern=dataSetDescription.getParsingPattern();
  int lineCounter=0;
  String numberParsingErrorMessage="String_Node_Str" + dataSetDescription.getDataSetName() + "String_Node_Str"+ fileName+ "String_Node_Str";
  boolean parsingErrorOccured=false;
  while ((line=reader.readLine()) != null) {
    String splitLine[]=line.split(dataSetDescription.getDelimiter());
    for (int count=0; count < parsingPattern.size(); count++) {
      ColumnDescription column=parsingPattern.get(count);
      String cellContent=splitLine[column.getColumn()];
      if (column.getDataType().equalsIgnoreCase("String_Node_Str")) {
        float[] targetColumn=(float[])targetColumns.get(count);
        Float value;
        try {
          value=Float.parseFloat(cellContent);
        }
 catch (        NumberFormatException nfe) {
          parsingErrorOccured=true;
          numberParsingErrorMessage+="String_Node_Str" + (column.getColumn()) + "String_Node_Str"+ (lineCounter + dataSetDescription.getNumberOfHeaderLines())+ "String_Node_Str"+ cellContent+ "String_Node_Str";
          value=Float.NaN;
        }
        if (lineCounter < targetColumn.length) {
          targetColumn[lineCounter]=value;
        }
 else {
          System.out.println("String_Node_Str" + lineCounter + "String_Node_Str"+ count);
        }
      }
 else       if (column.getDataType().equalsIgnoreCase("String_Node_Str")) {
        @SuppressWarnings("String_Node_Str") ArrayList<String> targetColumn=(ArrayList<String>)targetColumns.get(count);
        targetColumn.add(splitLine[column.getColumn()]);
      }
      if (lineCounter % 100 == 0) {
        swtGuiManager.setProgressBarPercentage((int)(progressBarFactor * lineCounter));
      }
    }
    lineCounter++;
  }
  if (parsingErrorOccured) {
    Logger.log(new Status(IStatus.ERROR,GeneralManager.PLUGIN_ID,numberParsingErrorMessage));
  }
}

Fixed version (ground truth):
@Override protected void parseFile(BufferedReader reader) throws IOException {
  initializeDataContainers();
  swtGuiManager.setProgressBarText("String_Node_Str" + dataSetDescription.getDataSetName());
  String line;
  float progressBarFactor=100f / numberOfLinesInFile;
  for (int countHeaderLines=0; countHeaderLines < dataSetDescription.getNumberOfHeaderLines(); countHeaderLines++) {
    reader.readLine();
  }
  ArrayList<ColumnDescription> parsingPattern=dataSetDescription.getParsingPattern();
  int lineCounter=0;
  String numberParsingErrorMessage="String_Node_Str" + dataSetDescription.getDataSetName() + "String_Node_Str"+ fileName+ "String_Node_Str";
  boolean parsingErrorOccured=false;
  while ((line=reader.readLine()) != null) {
    String splitLine[]=line.split(dataSetDescription.getDelimiter());
    for (int count=0; count < parsingPattern.size(); count++) {
      ColumnDescription column=parsingPattern.get(count);
      String cellContent=splitLine[column.getColumn()];
      if (column.getDataType().equalsIgnoreCase("String_Node_Str")) {
        float[] targetColumn=(float[])targetColumns.get(count);
        Float value;
        try {
          value=Float.parseFloat(cellContent);
        }
 catch (        NumberFormatException nfe) {
          parsingErrorOccured=true;
          numberParsingErrorMessage+="String_Node_Str" + (column.getColumn()) + "String_Node_Str"+ (lineCounter + dataSetDescription.getNumberOfHeaderLines())+ "String_Node_Str"+ cellContent+ "String_Node_Str";
          value=Float.NaN;
        }
        if (lineCounter < targetColumn.length) {
          targetColumn[lineCounter]=value;
        }
 else {
          System.out.println("String_Node_Str" + lineCounter + "String_Node_Str"+ count);
        }
      }
 else       if (column.getDataType().equalsIgnoreCase("String_Node_Str")) {
        @SuppressWarnings("String_Node_Str") ArrayList<String> targetColumn=(ArrayList<String>)targetColumns.get(count);
        targetColumn.add(splitLine[column.getColumn()]);
      }
      if (lineCounter % 100 == 0) {
        swtGuiManager.setProgressBarPercentage((int)(progressBarFactor * lineCounter));
      }
    }
    lineCounter++;
  }
  if (parsingErrorOccured) {
    Logger.log(new Status(IStatus.ERROR,GeneralManager.PLUGIN_ID,numberParsingErrorMessage));
  }
}