Program: 108432
Project: 108432
Buggy source:
@Override public void update(final ModelEvent event){
  if (event.part == ModelPart.MODEL) {
    model=(Model)event.data;
  }
 else   if (event.part == ModelPart.SELECTED_NODE) {
    final ARXNode selected=(ARXNode)event.data;
    if (selected == null) {
      reset();
    }
 else {
      final String trans=Arrays.toString(selected.getTransformation());
      for (      final TableItem i : table.getItems()) {
        if (i.getText(0).equals(trans)) {
          table.setSelection(i);
        }
      }
      SWTUtil.enable(root);
    }
  }
 else   if (event.part == ModelPart.CLIPBOARD) {
    table.setRedraw(false);
    table.removeAll();
    for (    final TableItem i : items) {
      i.dispose();
    }
    items.clear();
    final List<ARXNode> nodes=new ArrayList<ARXNode>();
    nodes.addAll(model.getClipboard());
    Collections.sort(nodes,new Comparator<ARXNode>(){
      @Override public int compare(      final ARXNode arg0,      final ARXNode arg1){
        for (int i=0; i < arg0.getTransformation().length; i++) {
          if (arg0.getTransformation()[i] < arg1.getTransformation()[i]) {
            return -1;
          }
 else           if (arg0.getTransformation()[i] > arg1.getTransformation()[i]) {
            return +1;
          }
        }
        return 0;
      }
    }
);
    for (    final ARXNode node : nodes) {
      final TableItem i=new TableItem(table,SWT.NONE);
      i.setText(0,Arrays.toString(node.getTransformation()));
      if (node.getAttributes().get(NODE_COMMENT) != null) {
        i.setText(1,(String)node.getAttributes().get(NODE_COMMENT));
      }
 else {
        i.setText(1,"String_Node_Str");
      }
      i.setData(node);
      items.add(i);
    }
    for (    final TableColumn c : columns) {
      c.pack();
    }
    table.setRedraw(true);
    table.redraw();
    SWTUtil.enable(root);
  }
}

Fixed version (ground truth):
@Override public void update(final ModelEvent event){
  if (event.part == ModelPart.MODEL) {
    model=(Model)event.data;
  }
 else   if (event.part == ModelPart.SELECTED_NODE) {
    final ARXNode selected=(ARXNode)event.data;
    if (selected == null) {
      reset();
    }
 else {
      final String trans=Arrays.toString(selected.getTransformation());
      for (      final TableItem i : table.getItems()) {
        if (i.getText(0).equals(trans)) {
          table.setSelection(i);
        }
      }
      SWTUtil.enable(root);
    }
  }
 else   if (event.part == ModelPart.CLIPBOARD) {
    table.setRedraw(false);
    table.removeAll();
    for (    final TableItem i : items) {
      i.dispose();
    }
    items.clear();
    List<ARXNode> nodes=model.getClipboardEntries();
    Collections.sort(nodes,new Comparator<ARXNode>(){
      @Override public int compare(      final ARXNode arg0,      final ARXNode arg1){
        for (int i=0; i < arg0.getTransformation().length; i++) {
          if (arg0.getTransformation()[i] < arg1.getTransformation()[i]) {
            return -1;
          }
 else           if (arg0.getTransformation()[i] > arg1.getTransformation()[i]) {
            return +1;
          }
        }
        return 0;
      }
    }
);
    for (    final ARXNode node : nodes) {
      final TableItem i=new TableItem(table,SWT.NONE);
      i.setText(0,Arrays.toString(node.getTransformation()));
      if (node.getAttributes().get(NODE_COMMENT) != null) {
        i.setText(1,(String)node.getAttributes().get(NODE_COMMENT));
      }
 else {
        i.setText(1,"String_Node_Str");
      }
      i.setData(node);
      items.add(i);
    }
    for (    final TableColumn c : columns) {
      c.pack();
    }
    table.setRedraw(true);
    table.redraw();
    SWTUtil.enable(root);
  }
}