Program: 108691
Project: 108691
Buggy source:
/** 
 * Starts the anonymization
 */
public void actionMenuEditAnonymize(){
  if (model == null) {
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),Resources.getMessage("String_Node_Str"));
    return;
  }
  if (model.getInputConfig().getInput() == null) {
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),Resources.getMessage("String_Node_Str"));
    return;
  }
  if (!model.isValidLatticeSize()) {
    final String message=Resources.getMessage("String_Node_Str") + Resources.getMessage("String_Node_Str") + Resources.getMessage("String_Node_Str")+ Resources.getMessage("String_Node_Str");
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),message);
    return;
  }
  if (model.getInputConfig().getResearchSubset().size() == 0) {
    final String message=Resources.getMessage("String_Node_Str");
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),message);
    return;
  }
  actionResetOutput();
  final WorkerAnonymize worker=new WorkerAnonymize(model);
  main.showProgressDialog(Resources.getMessage("String_Node_Str"),worker);
  if (worker.getError() != null) {
    Throwable t=worker.getError();
    if (worker.getError() instanceof InvocationTargetException) {
      t=worker.getError().getCause();
    }
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),Resources.getMessage("String_Node_Str") + t.getMessage());
    StringWriter sw=new StringWriter();
    PrintWriter pw=new PrintWriter(sw);
    worker.getError().printStackTrace(pw);
    getResources().getLogger().info(sw.toString());
    return;
  }
  if (worker.getResult() != null) {
    final ARXResult result=worker.getResult();
    model.createClonedConfig();
    model.setResult(result);
    model.getClipboard().clear();
    update(new ModelEvent(this,ModelPart.RESULT,result));
    update(new ModelEvent(this,ModelPart.CLIPBOARD,null));
    if (result.isResultAvailable()) {
      model.setOutput(result.getOutput(false),result.getGlobalOptimum());
      model.setSelectedNode(result.getGlobalOptimum());
      update(new ModelEvent(this,ModelPart.OUTPUT,result.getOutput(false)));
      update(new ModelEvent(this,ModelPart.SELECTED_NODE,result.getGlobalOptimum()));
      if (model.getMaximalSizeForComplexOperations() == 0 || model.getInputConfig().getInput().getHandle().getNumRows() <= model.getMaximalSizeForComplexOperations()) {
        this.model.getViewConfig().setSubset(true);
        this.model.getViewConfig().setMode(Mode.GROUPED);
        this.updateViewConfig(true);
      }
 else {
        this.model.getViewConfig().setSubset(true);
        this.model.getViewConfig().setMode(Mode.UNSORTED);
      }
      this.update(new ModelEvent(this,ModelPart.VIEW_CONFIG,model.getOutput()));
    }
    update(new ModelEvent(this,ModelPart.SELECTED_ATTRIBUTE,model.getSelectedAttribute()));
  }
}

Fixed version (ground truth):
/** 
 * Starts the anonymization
 */
public void actionMenuEditAnonymize(){
  if (model == null) {
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),Resources.getMessage("String_Node_Str"));
    return;
  }
  if (model.getInputConfig().getInput() == null) {
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),Resources.getMessage("String_Node_Str"));
    return;
  }
  if (!model.isValidLatticeSize()) {
    final String message=Resources.getMessage("String_Node_Str") + Resources.getMessage("String_Node_Str") + Resources.getMessage("String_Node_Str")+ Resources.getMessage("String_Node_Str");
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),message);
    return;
  }
  if (model.getInputConfig().getResearchSubset().size() == 0) {
    final String message=Resources.getMessage("String_Node_Str");
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),message);
    return;
  }
  actionResetOutput();
  final WorkerAnonymize worker=new WorkerAnonymize(model);
  main.showProgressDialog(Resources.getMessage("String_Node_Str"),worker);
  if (worker.getError() != null) {
    Throwable t=worker.getError();
    if (worker.getError() instanceof InvocationTargetException) {
      t=worker.getError().getCause();
    }
    main.showInfoDialog(Resources.getMessage("String_Node_Str"),Resources.getMessage("String_Node_Str") + t.getMessage());
    StringWriter sw=new StringWriter();
    PrintWriter pw=new PrintWriter(sw);
    worker.getError().printStackTrace(pw);
    getResources().getLogger().info(sw.toString());
    return;
  }
  if (worker.getResult() != null) {
    final ARXResult result=worker.getResult();
    model.createClonedConfig();
    model.setResult(result);
    model.getClipboard().clear();
    update(new ModelEvent(this,ModelPart.RESULT,result));
    update(new ModelEvent(this,ModelPart.CLIPBOARD,null));
    if (result.isResultAvailable()) {
      model.setOutput(result.getOutput(false),result.getGlobalOptimum());
      model.setSelectedNode(result.getGlobalOptimum());
      update(new ModelEvent(this,ModelPart.OUTPUT,result.getOutput(false)));
      update(new ModelEvent(this,ModelPart.SELECTED_NODE,result.getGlobalOptimum()));
      if (model.getMaximalSizeForComplexOperations() == 0 || model.getInputConfig().getInput().getHandle().getNumRows() <= model.getMaximalSizeForComplexOperations()) {
        this.model.getViewConfig().setSubset(true);
        this.model.getViewConfig().setMode(Mode.GROUPED);
        this.updateViewConfig(true);
      }
 else {
        this.model.getViewConfig().setSubset(true);
        this.model.getViewConfig().setMode(Mode.UNSORTED);
      }
      this.update(new ModelEvent(this,ModelPart.VIEW_CONFIG,model.getOutput()));
    }
 else {
      model.setOutput(null,null);
      model.setSelectedNode(null);
      update(new ModelEvent(this,ModelPart.OUTPUT,null));
      update(new ModelEvent(this,ModelPart.SELECTED_NODE,null));
    }
    update(new ModelEvent(this,ModelPart.SELECTED_ATTRIBUTE,model.getSelectedAttribute()));
  }
}