Program: 108204
Project: 108204
Buggy source:
@Override public void update(ModelEvent event){
  if (event.part == ModelPart.MODEL) {
    this.model=(Model)event.data;
  }
  if (event.part == ModelPart.CRITERION_DEFINITION || event.part == ModelPart.ATTRIBUTE_TYPE || event.part == ModelPart.MODEL) {
    if (model != null) {
      root.setRedraw(false);
      table.removeAll();
      if (model.getKAnonymityModel().isEnabled()) {
        TableItem item=new TableItem(table,SWT.NONE);
        item.setText(new String[]{"String_Node_Str",model.getKAnonymityModel().toString(),"String_Node_Str"});
        item.setImage(0,symbolK);
        item.setData(model.getKAnonymityModel());
      }
      if (model.getDPresenceModel().isEnabled()) {
        TableItem item=new TableItem(table,SWT.NONE);
        item.setText(new String[]{"String_Node_Str",model.getDPresenceModel().toString(),"String_Node_Str"});
        item.setImage(0,symbolD);
        item.setData(model.getDPresenceModel());
      }
      List<ModelExplicitCriterion> explicit=new ArrayList<ModelExplicitCriterion>();
      for (      ModelLDiversityCriterion other : model.getLDiversityModel().values()) {
        if (other.isEnabled()) {
          explicit.add(other);
        }
      }
      for (      ModelTClosenessCriterion other : model.getTClosenessModel().values()) {
        if (other.isEnabled()) {
          explicit.add(other);
        }
      }
      Collections.sort(explicit,new Comparator<ModelExplicitCriterion>(){
        public int compare(        ModelExplicitCriterion o1,        ModelExplicitCriterion o2){
          return o1.getAttribute().compareTo(o2.getAttribute());
        }
      }
);
      for (      ModelExplicitCriterion c : explicit) {
        TableItem item=new TableItem(table,SWT.NONE);
        item.setText(new String[]{"String_Node_Str",c.toString(),c.getAttribute()});
        if (c instanceof ModelLDiversityCriterion) {
          item.setImage(0,symbolL);
        }
 else {
          item.setImage(0,symbolT);
        }
        item.setData(c);
      }
      List<ModelRiskBasedCriterion> riskBased=new ArrayList<ModelRiskBasedCriterion>();
      for (      ModelRiskBasedCriterion other : model.getRiskBasedModel()) {
        if (other.isEnabled()) {
          riskBased.add(other);
        }
      }
      Collections.sort(riskBased,new Comparator<ModelRiskBasedCriterion>(){
        public int compare(        ModelRiskBasedCriterion o1,        ModelRiskBasedCriterion o2){
          return o1.getLabel().compareTo(o2.getLabel());
        }
      }
);
      for (      ModelRiskBasedCriterion c : riskBased) {
        TableItem item=new TableItem(table,SWT.NONE);
        item.setText(new String[]{"String_Node_Str",c.toString(),"String_Node_Str"});
        item.setImage(0,symbolR);
        item.setData(c);
      }
      column1.pack();
      column2.pack();
      column3.pack();
      layout.updateButtons();
      root.setRedraw(true);
      SWTUtil.enable(root);
    }
  }
}

Fixed version (ground truth):
@Override public void update(ModelEvent event){
  if (event.part == ModelPart.MODEL) {
    this.model=(Model)event.data;
  }
  if (event.part == ModelPart.CRITERION_DEFINITION || event.part == ModelPart.ATTRIBUTE_TYPE || event.part == ModelPart.MODEL) {
    if (model != null) {
      updateTable();
    }
  }
}