Program: 108898
Project: 108898
Buggy source:
/** 
 * Internal method for importing data
 * @param path
 * @param separator
 */
private void actionImportData(final String path,final char separator){
  final WorkerImport worker=new WorkerImport(path,separator);
  main.showProgressDialog(Resources.getMessage("String_Node_Str"),worker);
  if (worker.getError() != null) {
    main.showErrorDialog(Resources.getMessage("String_Node_Str"),Resources.getMessage("String_Node_Str") + worker.getError().getMessage());
    return;
  }
  reset();
  final Data data=worker.getResult();
  model.reset();
  RowSet subset=RowSet.create(data);
  for (int i=0; i < subset.length(); i++) {
    subset.add(i);
  }
  model.getInputConfig().setResearchSubset(subset);
  model.getInputConfig().setInput(data);
  model.setInputBytes(new File(path).length());
  final DataDefinition definition=data.getDefinition();
  for (int i=0; i < data.getHandle().getNumColumns(); i++) {
    definition.setAttributeType(model.getInputConfig().getInput().getHandle().getAttributeName(i),AttributeType.INSENSITIVE_ATTRIBUTE);
    definition.setDataType(model.getInputConfig().getInput().getHandle().getAttributeName(i),DataType.STRING);
  }
  model.resetCriteria();
  model.setGroups(null);
  model.setOutput(null,null);
  model.setViewConfig(new ModelViewConfig());
  update(new ModelEvent(this,ModelPart.MODEL,model));
  update(new ModelEvent(this,ModelPart.INPUT,data.getHandle()));
  if (data.getHandle().getNumColumns() > 0) {
    model.setSelectedAttribute(data.getHandle().getAttributeName(0));
    update(new ModelEvent(this,ModelPart.SELECTED_ATTRIBUTE,data.getHandle().getAttributeName(0)));
    update(new ModelEvent(this,ModelPart.CRITERION_DEFINITION,null));
    update(new ModelEvent(this,ModelPart.RESEARCH_SUBSET,subset));
  }
}

Fixed version (ground truth):
/** 
 * Internal method for importing data
 * @param path
 * @param separator
 */
private void actionImportData(final String path,final char separator){
  final WorkerImport worker=new WorkerImport(path,separator);
  main.showProgressDialog(Resources.getMessage("String_Node_Str"),worker);
  if (worker.getError() != null) {
    main.showErrorDialog(Resources.getMessage("String_Node_Str"),Resources.getMessage("String_Node_Str"),worker.getError());
    return;
  }
  reset();
  final Data data=worker.getResult();
  model.reset();
  RowSet subset=RowSet.create(data);
  for (int i=0; i < subset.length(); i++) {
    subset.add(i);
  }
  model.getInputConfig().setResearchSubset(subset);
  model.getInputConfig().setInput(data);
  model.setInputBytes(new File(path).length());
  final DataDefinition definition=data.getDefinition();
  for (int i=0; i < data.getHandle().getNumColumns(); i++) {
    definition.setAttributeType(model.getInputConfig().getInput().getHandle().getAttributeName(i),AttributeType.INSENSITIVE_ATTRIBUTE);
    definition.setDataType(model.getInputConfig().getInput().getHandle().getAttributeName(i),DataType.STRING);
  }
  model.resetCriteria();
  model.setGroups(null);
  model.setOutput(null,null);
  model.setViewConfig(new ModelViewConfig());
  update(new ModelEvent(this,ModelPart.MODEL,model));
  update(new ModelEvent(this,ModelPart.INPUT,data.getHandle()));
  if (data.getHandle().getNumColumns() > 0) {
    model.setSelectedAttribute(data.getHandle().getAttributeName(0));
    update(new ModelEvent(this,ModelPart.SELECTED_ATTRIBUTE,data.getHandle().getAttributeName(0)));
    update(new ModelEvent(this,ModelPart.CRITERION_DEFINITION,null));
    update(new ModelEvent(this,ModelPart.RESEARCH_SUBSET,subset));
  }
}