Program: 57547
Project: 57547
Buggy source:
@Override protected void parseFile(BufferedReader reader) throws IOException {
  initializeDataContainers();
  swtGuiManager.setProgressBarText("String_Node_Str" + dataSetDescription.getDataSetName());
  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"+ filePath+ "String_Node_Str";
  boolean parsingErrorOccured=false;
  IDSpecification rowIDSpecification=dataSetDescription.getRowIDSpecification();
  IDCategory rowIDCategory=IDCategory.getIDCategory(rowIDSpecification.getIdCategory());
  IDType fromIDType=IDType.getIDType(rowIDSpecification.getIdType());
  IDType toIDType;
  if (dataDomain.isColumnDimension())   toIDType=dataDomain.getRecordIDType();
 else   toIDType=dataDomain.getDimensionIDType();
  IDMappingManager rowIDMappingManager=IDMappingManagerRegistry.get().getIDMappingManager(rowIDCategory);
  int columnOfRowIDs=dataSetDescription.getColumnOfRowIds();
  MappingType mappingType=rowIDMappingManager.createMap(fromIDType,toIDType,false,true);
  IDTypeParsingRules parsingRules=null;
  if (rowIDSpecification.getIdTypeParsingRules() != null)   parsingRules=rowIDSpecification.getIdTypeParsingRules();
 else   if (toIDType.getIdTypeParsingRules() != null)   parsingRules=toIDType.getIdTypeParsingRules();
  String line;
  while ((line=reader.readLine()) != null) {
    String splitLine[]=line.split(dataSetDescription.getDelimiter());
    String id=splitLine[columnOfRowIDs];
    convertID(id,parsingRules);
    rowIDMappingManager.addMapping(mappingType,id,lineCounter - startParsingAtLine);
    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());
  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"+ filePath+ "String_Node_Str";
  boolean parsingErrorOccured=false;
  IDSpecification rowIDSpecification=dataSetDescription.getRowIDSpecification();
  IDCategory rowIDCategory=IDCategory.getIDCategory(rowIDSpecification.getIdCategory());
  IDType fromIDType=IDType.getIDType(rowIDSpecification.getIdType());
  IDType toIDType;
  if (dataDomain.isColumnDimension())   toIDType=dataDomain.getRecordIDType();
 else   toIDType=dataDomain.getDimensionIDType();
  IDMappingManager rowIDMappingManager=IDMappingManagerRegistry.get().getIDMappingManager(rowIDCategory);
  int columnOfRowIDs=dataSetDescription.getColumnOfRowIds();
  MappingType mappingType=rowIDMappingManager.createMap(fromIDType,toIDType,false,true);
  IDTypeParsingRules parsingRules=null;
  if (rowIDSpecification.getIdTypeParsingRules() != null)   parsingRules=rowIDSpecification.getIdTypeParsingRules();
 else   if (toIDType.getIdTypeParsingRules() != null)   parsingRules=toIDType.getIdTypeParsingRules();
  String line;
  while ((line=reader.readLine()) != null) {
    String splitLine[]=line.split(dataSetDescription.getDelimiter());
    String id=splitLine[columnOfRowIDs];
    id=convertID(id,parsingRules);
    rowIDMappingManager.addMapping(mappingType,id,lineCounter - startParsingAtLine);
    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));
  }
}