Program: 107736
Project: 107736
Buggy source:
/** 
 * Updates the view.
 * @param node
 */
private void update(final ARXNode node){
  table.setRedraw(false);
  for (  final TableItem i : table.getItems()) {
    i.dispose();
  }
  TableItem c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,Arrays.toString(node.getTransformation()));
  Step step=null;
  if (node.getAttributes().containsKey(Integer.MAX_VALUE)) {
    if (node.getAttributes().get(Integer.MAX_VALUE) instanceof Step) {
      step=(Step)node.getAttributes().get(Integer.MAX_VALUE);
    }
  }
  if (step != null) {
    c=new TableItem(table,SWT.NONE);
    c.setText(0,Resources.getMessage("String_Node_Str"));
    c.setText(1,String.valueOf(step.getNumberOfRecordsTransformed()));
  }
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,String.valueOf(node.getAnonymity()));
  if (node.getLowestScore() != null && node.getHighestScore() != null && node.getLowestScore().compareTo(node.getHighestScore()) == 0) {
    c=new TableItem(table,SWT.NONE);
    c.setText(0,Resources.getMessage("String_Node_Str"));
    c.setText(1,node.getLowestScore().toString() + "String_Node_Str" + SWTUtil.getPrettyString(asRelativeValue(node.getLowestScore()))+ "String_Node_Str");
  }
 else {
    c=new TableItem(table,SWT.NONE);
    c.setText(0,Resources.getMessage("String_Node_Str"));
    if (node.getLowestScore() != null) {
      c.setText(1,node.getLowestScore().toString() + "String_Node_Str" + SWTUtil.getPrettyString(asRelativeValue(node.getLowestScore()))+ "String_Node_Str");
    }
 else {
      c.setText(1,Resources.getMessage("String_Node_Str"));
    }
    c=new TableItem(table,SWT.NONE);
    c.setText(0,Resources.getMessage("String_Node_Str"));
    if (node.getHighestScore() != null) {
      c.setText(1,node.getHighestScore().toString() + "String_Node_Str" + SWTUtil.getPrettyString(asRelativeValue(node.getHighestScore()))+ "String_Node_Str");
    }
 else {
      c.setText(1,Resources.getMessage("String_Node_Str"));
    }
  }
  if (node.isChecked()) {
    for (    QualityMetadata<?> metadata : node.getLowestScore().getMetadata()) {
      c=new TableItem(table,SWT.NONE);
      c.setText(0,metadata.getParameter());
      c.setText(1,SWTUtil.getPrettyString(metadata.getValue()));
    }
  }
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,String.valueOf(node.getSuccessors().length));
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,String.valueOf(node.getPredecessors().length));
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,String.valueOf(node.isChecked()));
  for (  final TableColumn col : table.getColumns()) {
    col.pack();
  }
  table.setRedraw(true);
  table.redraw();
}

Fixed version (ground truth):
/** 
 * Updates the view.
 * @param node
 */
private void update(final ARXNode node){
  if (node == null) {
    return;
  }
  table.setRedraw(false);
  for (  final TableItem i : table.getItems()) {
    i.dispose();
  }
  TableItem c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,Arrays.toString(node.getTransformation()));
  Step step=null;
  if (node.getAttributes().containsKey(Integer.MAX_VALUE)) {
    if (node.getAttributes().get(Integer.MAX_VALUE) instanceof Step) {
      step=(Step)node.getAttributes().get(Integer.MAX_VALUE);
    }
  }
  if (step != null) {
    c=new TableItem(table,SWT.NONE);
    c.setText(0,Resources.getMessage("String_Node_Str"));
    c.setText(1,String.valueOf(step.getNumberOfRecordsTransformed()));
  }
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,String.valueOf(node.getAnonymity()));
  if (node.getLowestScore() != null && node.getHighestScore() != null && node.getLowestScore().compareTo(node.getHighestScore()) == 0) {
    c=new TableItem(table,SWT.NONE);
    c.setText(0,Resources.getMessage("String_Node_Str"));
    c.setText(1,node.getLowestScore().toString() + "String_Node_Str" + SWTUtil.getPrettyString(asRelativeValue(node.getLowestScore()))+ "String_Node_Str");
  }
 else {
    c=new TableItem(table,SWT.NONE);
    c.setText(0,Resources.getMessage("String_Node_Str"));
    if (node.getLowestScore() != null) {
      c.setText(1,node.getLowestScore().toString() + "String_Node_Str" + SWTUtil.getPrettyString(asRelativeValue(node.getLowestScore()))+ "String_Node_Str");
    }
 else {
      c.setText(1,Resources.getMessage("String_Node_Str"));
    }
    c=new TableItem(table,SWT.NONE);
    c.setText(0,Resources.getMessage("String_Node_Str"));
    if (node.getHighestScore() != null) {
      c.setText(1,node.getHighestScore().toString() + "String_Node_Str" + SWTUtil.getPrettyString(asRelativeValue(node.getHighestScore()))+ "String_Node_Str");
    }
 else {
      c.setText(1,Resources.getMessage("String_Node_Str"));
    }
  }
  if (node.isChecked()) {
    for (    QualityMetadata<?> metadata : node.getLowestScore().getMetadata()) {
      c=new TableItem(table,SWT.NONE);
      c.setText(0,metadata.getParameter());
      c.setText(1,SWTUtil.getPrettyString(metadata.getValue()));
    }
  }
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,String.valueOf(node.getSuccessors().length));
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,String.valueOf(node.getPredecessors().length));
  c=new TableItem(table,SWT.NONE);
  c.setText(0,Resources.getMessage("String_Node_Str"));
  c.setText(1,String.valueOf(node.isChecked()));
  for (  final TableColumn col : table.getColumns()) {
    col.pack();
  }
  table.setRedraw(true);
  table.redraw();
}