Program: 57672
Project: 57672
Buggy source:
/** 
 * prepares the dimension creation definition from the preview table. The dimension creation definition consists of the definition which columns in the data-CSV-file should be read, which should be skipped and the dimension-labels.
 * @return <code>true</code> if the preparation was successful,<code>false</code> otherwise
 */
private boolean readDimensionDefinition(){
  ArrayList<String> dimensionLabels=new ArrayList<String>();
  ArrayList<ColumnDescription> inputPattern=new ArrayList<ColumnDescription>();
  for (int columnIndex=2; columnIndex < previewTable.getColumnCount(); columnIndex++) {
    if (!skipColumn.get(columnIndex - 2).getSelection()) {
    }
 else {
      if (buttonUncertaintyDataProvided.getSelection() && (columnIndex % 2 != 0)) {
        inputPattern.add(new ColumnDescription(columnIndex - 1,"String_Node_Str",ColumnDescription.CONTINUOUS));
        continue;
      }
      String dataType="String_Node_Str";
      try {
        int testSize=previewTable.getItemCount() - dataSetDescription.getNumberOfHeaderLines() - 1;
        for (int rowCount=1; rowCount < testSize; rowCount++) {
          String testString=previewTable.getItem(rowCount).getText(columnIndex);
          if (!testString.isEmpty())           Float.parseFloat(testString);
        }
      }
 catch (      NumberFormatException nfe) {
        dataType="String_Node_Str";
      }
      inputPattern.add(new ColumnDescription(columnIndex - 1,dataType,ColumnDescription.CONTINUOUS));
      String labelText=previewTable.getColumn(columnIndex).getText();
      dimensionLabels.add(labelText);
    }
  }
  dataSetDescription.setParsingPattern(inputPattern);
  dataSetDescription.setDataSourcePath(txtFileName.getText());
  if (dataSetDescription.getDataSourcePath().equals("String_Node_Str")) {
    MessageDialog.openError(new Shell(),"String_Node_Str","String_Node_Str");
    return false;
  }
  return true;
}

Fixed version (ground truth):
/** 
 * prepares the dimension creation definition from the preview table. The dimension creation definition consists of the definition which columns in the data-CSV-file should be read, which should be skipped and the dimension-labels.
 * @return <code>true</code> if the preparation was successful,<code>false</code> otherwise
 */
private boolean readDimensionDefinition(){
  ArrayList<String> dimensionLabels=new ArrayList<String>();
  ArrayList<ColumnDescription> inputPattern=new ArrayList<ColumnDescription>();
  for (int columnIndex=2; columnIndex < previewTable.getColumnCount(); columnIndex++) {
    if (!skipColumn.get(columnIndex - 2).getSelection()) {
    }
 else {
      if (buttonUncertaintyDataProvided.getSelection() && (columnIndex % 2 != 0)) {
        inputPattern.add(new ColumnDescription(columnIndex - 1,"String_Node_Str",ColumnDescription.CONTINUOUS));
        continue;
      }
      String dataType="String_Node_Str";
      try {
        int testSize=previewTable.getItemCount() - dataSetDescription.getNumberOfHeaderLines() - 1;
        for (int rowCount=1; rowCount < testSize; rowCount++) {
          String testString=previewTable.getItem(rowCount).getText(columnIndex);
          if (!testString.isEmpty())           Float.parseFloat(testString);
        }
      }
 catch (      NumberFormatException nfe) {
        dataType="String_Node_Str";
      }
      inputPattern.add(new ColumnDescription(columnIndex - 1,dataType,ColumnDescription.CONTINUOUS));
      String labelText=previewTable.getColumn(columnIndex).getText();
      dimensionLabels.add(labelText);
    }
  }
  dataSetDescription.setParsingPattern(inputPattern);
  dataSetDescription.setDataSourcePath(txtFileName.getText());
  return true;
}