Program: 108825
Project: 108825
Buggy source:
/** 
 * Update the view
 */
protected void update(){
  if (model == null) {
    return;
  }
  ModelConfiguration config=model.getOutputConfig();
  if (config == null) {
    config=model.getInputConfig();
  }
  final DataHandle data;
  if (config.getInput() == null) {
    reset();
    return;
  }
 else {
    data=config.getInput().getHandle();
  }
  if ((config == null) || (data == null)) {
    reset();
    return;
  }
  root.setRedraw(false);
  roots.clear();
  new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getNumRows())});
  new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(config.getAllowedOutliers() * 100d) + Resources.getMessage("String_Node_Str")});
  final Property attributes=new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getNumColumns())});
  final Property identifying=new Property(attributes,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getDefinition().getIdentifyingAttributes().size())});
  int index=0;
  for (int i=0; i < data.getNumColumns(); i++) {
    final String s=data.getAttributeName(i);
    if (data.getDefinition().getIdentifyingAttributes().contains(s)) {
      final String[] values=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      values[0]=s;
      values[1]=data.getDefinition().getDataType(s).toString();
      new Property(identifying,Resources.getMessage("String_Node_Str") + (index++),values);
    }
  }
  final Property quasiIdentifying=new Property(attributes,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getDefinition().getQuasiIdentifyingAttributes().size())});
  index=0;
  for (int i=0; i < data.getNumColumns(); i++) {
    final String s=data.getAttributeName(i);
    if (data.getDefinition().getQuasiIdentifyingAttributes().contains(s)) {
      final String[] values=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      values[0]=s;
      if (data.getDefinition().getHierarchy(s) != null) {
        DataType<?> type=data.getDefinition().getDataType(s);
        values[1]=type.getDescription().getLabel();
        if (type.getDescription().hasFormat() && ((DataTypeWithFormat)type).getFormat() != null) {
          values[2]=((DataTypeWithFormat)type).getFormat();
        }
        values[3]=String.valueOf(data.getDefinition().getHierarchyHeight(s));
        values[4]=String.valueOf(data.getDefinition().getMinimumGeneralization(s));
        values[5]=String.valueOf(data.getDefinition().getMaximumGeneralization(s));
      }
      new Property(quasiIdentifying,Resources.getMessage("String_Node_Str") + (index++),values);
    }
  }
  final Property sensitive=new Property(attributes,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getDefinition().getSensitiveAttributes().size())});
  index=0;
  for (int i=0; i < data.getNumColumns(); i++) {
    final String s=data.getAttributeName(i);
    if (data.getDefinition().getSensitiveAttributes().contains(s)) {
      final String[] values=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      values[0]=s;
      if (config.getHierarchy(s) != null) {
        int height=0;
        if (config.getHierarchy(s).getHierarchy().length > 0) {
          height=config.getHierarchy(s).getHierarchy()[0].length;
        }
        values[1]=data.getDefinition().getDataType(s).toString();
        values[2]=String.valueOf(height);
      }
      new Property(sensitive,Resources.getMessage("String_Node_Str") + (index++),values);
    }
  }
  final Property insensitive=new Property(attributes,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getDefinition().getInsensitiveAttributes().size())});
  index=0;
  for (int i=0; i < data.getNumColumns(); i++) {
    final String s=data.getAttributeName(i);
    if (data.getDefinition().getInsensitiveAttributes().contains(s)) {
      final String[] values=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      values[0]=s;
      values[1]=data.getDefinition().getDataType(s).toString();
      new Property(insensitive,Resources.getMessage("String_Node_Str") + (index++),values);
    }
  }
  treeViewer.refresh();
  treeViewer.expandAll();
  root.setRedraw(true);
}

Fixed version (ground truth):
/** 
 * Update the view
 */
protected void update(){
  if (model == null) {
    return;
  }
  ModelConfiguration config=model.getOutputConfig();
  if (config == null) {
    config=model.getInputConfig();
  }
  final DataHandle data;
  if (config == null || config.getInput() == null) {
    reset();
    return;
  }
 else {
    data=config.getInput().getHandle();
  }
  if (data == null) {
    reset();
    return;
  }
  root.setRedraw(false);
  roots.clear();
  new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getNumRows())});
  new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(config.getAllowedOutliers() * 100d) + Resources.getMessage("String_Node_Str")});
  final Property attributes=new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getNumColumns())});
  final Property identifying=new Property(attributes,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getDefinition().getIdentifyingAttributes().size())});
  int index=0;
  for (int i=0; i < data.getNumColumns(); i++) {
    final String s=data.getAttributeName(i);
    if (data.getDefinition().getIdentifyingAttributes().contains(s)) {
      final String[] values=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      values[0]=s;
      values[1]=data.getDefinition().getDataType(s).toString();
      new Property(identifying,Resources.getMessage("String_Node_Str") + (index++),values);
    }
  }
  final Property quasiIdentifying=new Property(attributes,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getDefinition().getQuasiIdentifyingAttributes().size())});
  index=0;
  for (int i=0; i < data.getNumColumns(); i++) {
    final String s=data.getAttributeName(i);
    if (data.getDefinition().getQuasiIdentifyingAttributes().contains(s)) {
      final String[] values=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      values[0]=s;
      if (data.getDefinition().getHierarchy(s) != null) {
        DataType<?> type=data.getDefinition().getDataType(s);
        values[1]=type.getDescription().getLabel();
        if (type.getDescription().hasFormat() && ((DataTypeWithFormat)type).getFormat() != null) {
          values[2]=((DataTypeWithFormat)type).getFormat();
        }
        values[3]=String.valueOf(data.getDefinition().getHierarchyHeight(s));
        values[4]=String.valueOf(data.getDefinition().getMinimumGeneralization(s));
        values[5]=String.valueOf(data.getDefinition().getMaximumGeneralization(s));
      }
      new Property(quasiIdentifying,Resources.getMessage("String_Node_Str") + (index++),values);
    }
  }
  final Property sensitive=new Property(attributes,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getDefinition().getSensitiveAttributes().size())});
  index=0;
  for (int i=0; i < data.getNumColumns(); i++) {
    final String s=data.getAttributeName(i);
    if (data.getDefinition().getSensitiveAttributes().contains(s)) {
      final String[] values=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      values[0]=s;
      if (config.getHierarchy(s) != null) {
        int height=0;
        if (config.getHierarchy(s).getHierarchy().length > 0) {
          height=config.getHierarchy(s).getHierarchy()[0].length;
        }
        values[1]=data.getDefinition().getDataType(s).toString();
        values[2]=String.valueOf(height);
      }
      new Property(sensitive,Resources.getMessage("String_Node_Str") + (index++),values);
    }
  }
  final Property insensitive=new Property(attributes,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(data.getDefinition().getInsensitiveAttributes().size())});
  index=0;
  for (int i=0; i < data.getNumColumns(); i++) {
    final String s=data.getAttributeName(i);
    if (data.getDefinition().getInsensitiveAttributes().contains(s)) {
      final String[] values=new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      values[0]=s;
      values[1]=data.getDefinition().getDataType(s).toString();
      new Property(insensitive,Resources.getMessage("String_Node_Str") + (index++),values);
    }
  }
  treeViewer.refresh();
  treeViewer.expandAll();
  root.setRedraw(true);
}