Program: 56999
Project: 56999
Buggy source:
/** 
 * Reads the min and max values (if set) from the dialog
 */
public void fillDataSetDescription(){
  IDSpecification rowIDSpecification=new IDSpecification();
  IDType rowIDType=IDType.getIDType(page.rowIDCombo.getItem(page.rowIDCombo.getSelectionIndex()));
  rowIDSpecification.setIdType(rowIDType.getTypeName());
  if (rowIDType.getIDCategory().getCategoryName().equals("String_Node_Str"))   rowIDSpecification.setIDTypeGene(true);
  rowIDSpecification.setIdCategory(rowIDType.getIDCategory().getCategoryName());
  if (rowIDTypeParsingRules != null) {
    rowIDSpecification.setIdTypeParsingRules(rowIDTypeParsingRules);
  }
 else   if (rowIDType.getTypeName().equalsIgnoreCase("String_Node_Str")) {
    IDTypeParsingRules parsingRules=new IDTypeParsingRules();
    parsingRules.setSubStringExpression("String_Node_Str");
    parsingRules.setDefault(true);
    rowIDSpecification.setIdTypeParsingRules(parsingRules);
  }
  IDSpecification columnIDSpecification=new IDSpecification();
  IDType columnIDType=IDType.getIDType(page.columnIDCombo.getItem(page.columnIDCombo.getSelectionIndex()));
  columnIDSpecification.setIdType(columnIDType.getTypeName());
  if (columnIDType.getIDCategory().getCategoryName().equals("String_Node_Str"))   columnIDSpecification.setIDTypeGene(true);
  columnIDSpecification.setIdCategory(columnIDType.getIDCategory().getCategoryName());
  if (columnIDTypeParsingRules != null) {
    columnIDSpecification.setIdTypeParsingRules(columnIDTypeParsingRules);
  }
  dataSetDescription.setColumnIDSpecification(columnIDSpecification);
  dataSetDescription.setRowIDSpecification(rowIDSpecification);
  dataSetDescription.setDataSetName(page.label.getText());
  dataSetDescription.setDataSourcePath(page.loadFile.getFileName());
  List<List<String>> matrix=parser.getDataMatrix();
  List<List<String>> filteredMatrix=new ArrayList<>(matrix.size());
  List<Integer> selectedColumns=page.previewTable.getSelectedColumns();
  DataImportWizard wizard=page.getWizard();
  List<String> columnOfRowIDs=new ArrayList<>(matrix.size() - dataSetDescription.getNumberOfHeaderLines());
  for (int i=0; i < matrix.size(); i++) {
    boolean isRowOfColumnID=false;
    if (i == dataSetDescription.getRowOfColumnIDs()) {
      isRowOfColumnID=true;
    }
 else     if (i < dataSetDescription.getNumberOfHeaderLines())     continue;
    List<String> row=matrix.get(i);
    List<String> filteredRow=filterRowByIndices(row,selectedColumns);
    if (isRowOfColumnID) {
      wizard.setFilteredRowOfColumnIDs(filteredRow);
    }
 else {
      filteredMatrix.add(filteredRow);
      columnOfRowIDs.add(row.get(dataSetDescription.getColumnOfRowIds()));
    }
  }
  wizard.setFilteredDataMatrix(filteredMatrix);
  wizard.setSelectedColumns(selectedColumns);
  wizard.setColumnOfRowIDs(columnOfRowIDs);
}

Fixed version (ground truth):
/** 
 * Reads the min and max values (if set) from the dialog
 */
public void fillDataSetDescription(){
  IDSpecification rowIDSpecification=new IDSpecification();
  IDType rowIDType=IDType.getIDType(page.rowIDCombo.getItem(page.rowIDCombo.getSelectionIndex()));
  rowIDSpecification.setIdType(rowIDType.getTypeName());
  if (rowIDType.getIDCategory().getCategoryName().equals("String_Node_Str"))   rowIDSpecification.setIDTypeGene(true);
  rowIDSpecification.setIdCategory(rowIDType.getIDCategory().getCategoryName());
  if (rowIDTypeParsingRules != null) {
    rowIDSpecification.setIdTypeParsingRules(rowIDTypeParsingRules);
  }
 else   if (rowIDType.getIdTypeParsingRules() != null) {
    rowIDSpecification.setIdTypeParsingRules(rowIDType.getIdTypeParsingRules());
  }
 else   if (rowIDType.getTypeName().equalsIgnoreCase("String_Node_Str")) {
    IDTypeParsingRules parsingRules=new IDTypeParsingRules();
    parsingRules.setSubStringExpression("String_Node_Str");
    parsingRules.setDefault(true);
    rowIDSpecification.setIdTypeParsingRules(parsingRules);
  }
  IDSpecification columnIDSpecification=new IDSpecification();
  IDType columnIDType=IDType.getIDType(page.columnIDCombo.getItem(page.columnIDCombo.getSelectionIndex()));
  columnIDSpecification.setIdType(columnIDType.getTypeName());
  if (columnIDType.getIDCategory().getCategoryName().equals("String_Node_Str"))   columnIDSpecification.setIDTypeGene(true);
  columnIDSpecification.setIdCategory(columnIDType.getIDCategory().getCategoryName());
  if (columnIDTypeParsingRules != null) {
    columnIDSpecification.setIdTypeParsingRules(columnIDTypeParsingRules);
  }
 else   if (columnIDType.getIdTypeParsingRules() != null) {
    columnIDSpecification.setIdTypeParsingRules(columnIDType.getIdTypeParsingRules());
  }
  dataSetDescription.setColumnIDSpecification(columnIDSpecification);
  dataSetDescription.setRowIDSpecification(rowIDSpecification);
  dataSetDescription.setDataSetName(page.label.getText());
  dataSetDescription.setDataSourcePath(page.loadFile.getFileName());
  List<List<String>> matrix=parser.getDataMatrix();
  List<List<String>> filteredMatrix=new ArrayList<>(matrix.size());
  List<Integer> selectedColumns=page.previewTable.getSelectedColumns();
  DataImportWizard wizard=page.getWizard();
  List<String> columnOfRowIDs=new ArrayList<>(matrix.size() - dataSetDescription.getNumberOfHeaderLines());
  for (int i=0; i < matrix.size(); i++) {
    boolean isRowOfColumnID=false;
    if (i == dataSetDescription.getRowOfColumnIDs()) {
      isRowOfColumnID=true;
    }
 else     if (i < dataSetDescription.getNumberOfHeaderLines())     continue;
    List<String> row=matrix.get(i);
    List<String> filteredRow=filterRowByIndices(row,selectedColumns);
    if (isRowOfColumnID) {
      wizard.setFilteredRowOfColumnIDs(filteredRow);
    }
 else {
      filteredMatrix.add(filteredRow);
      columnOfRowIDs.add(row.get(dataSetDescription.getColumnOfRowIds()));
    }
  }
  wizard.setFilteredDataMatrix(filteredMatrix);
  wizard.setSelectedColumns(selectedColumns);
  wizard.setColumnOfRowIDs(columnOfRowIDs);
}