Program: 108822
Project: 108822
Buggy source:
/** 
 * Update the view
 */
protected void update(){
  Context context=getContext().getContext();
  if (context == null || context.config == null || context.handle == null) {
    reset();
    return;
  }
  root.setRedraw(false);
  ARXResult result=model.getResult();
  ARXNode node=model.getSelectedNode();
  roots.clear();
  EquivalenceClassStatistics statistics=context.handle.getStatistics().getEquivalenceClassStatistics();
  if (statistics != null) {
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getNumberOfOutlyingTuples())});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getNumberOfGroups())});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getNumberOfOutlyingEquivalenceClasses())});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getMinimalEquivalenceClassSize())});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getMaximalEquivalenceClassSize())});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getAverageEquivalenceClassSize())});
  }
  if (node.getMaximumInformationLoss().getValue() == node.getMinimumInformationLoss().getValue()) {
    final String infoloss=String.valueOf(node.getMinimumInformationLoss().getValue()) + "String_Node_Str" + format.format(asRelativeValue(node.getMinimumInformationLoss(),result))+ "String_Node_Str";
    new Property(Resources.getMessage("String_Node_Str"),new String[]{infoloss});
  }
  new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(node.getSuccessors().length)});
  new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(node.getPredecessors().length)});
  new Property(Resources.getMessage("String_Node_Str"),new String[]{Arrays.toString(node.getTransformation())});
  if (node.isAnonymous() == Anonymity.ANONYMOUS) {
    if (context.config.containsCriterion(DPresence.class)) {
      DPresence criterion=context.config.getCriterion(DPresence.class);
      if (!(criterion.getDMin() == 0d && criterion.getDMax() == 1d)) {
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getDMin())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getDMax())});
      }
    }
    if (context.config.containsCriterion(KAnonymity.class)) {
      KAnonymity criterion=context.config.getCriterion(KAnonymity.class);
      Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
      new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getK())});
    }
    int index=0;
    for (    PrivacyCriterion c : context.config.getCriteria()) {
      if (c instanceof DistinctLDiversity) {
        DistinctLDiversity criterion=(DistinctLDiversity)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getL())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
      }
 else       if (c instanceof EntropyLDiversity) {
        EntropyLDiversity criterion=(EntropyLDiversity)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getL())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
      }
 else       if (c instanceof RecursiveCLDiversity) {
        RecursiveCLDiversity criterion=(RecursiveCLDiversity)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getC())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getL())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
      }
 else       if (c instanceof EqualDistanceTCloseness) {
        EqualDistanceTCloseness criterion=(EqualDistanceTCloseness)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getT())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
      }
 else       if (c instanceof HierarchicalDistanceTCloseness) {
        HierarchicalDistanceTCloseness criterion=(HierarchicalDistanceTCloseness)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getT())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
        final int height=context.config.getHierarchy(criterion.getAttribute()).getHierarchy()[0].length;
        new Property(n,"String_Node_Str" + (index++),new String[]{Resources.getMessage("String_Node_Str") + String.valueOf(height)});
      }
    }
  }
 else {
    new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
  }
  treeViewer.refresh();
  treeViewer.expandAll();
  root.setRedraw(true);
}

Fixed version (ground truth):
/** 
 * Update the view
 */
protected void update(){
  Context context=getContext().getContext();
  if (context == null || context.config == null || context.handle == null) {
    reset();
    return;
  }
  root.setRedraw(false);
  ARXResult result=model.getResult();
  ARXNode node=model.getSelectedNode();
  roots.clear();
  EquivalenceClassStatistics statistics=context.handle.getStatistics().getEquivalenceClassStatistics();
  if (statistics != null) {
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getNumberOfOutlyingTuples())});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getNumberOfGroups())});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getNumberOfOutlyingEquivalenceClasses())});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getMinimalEquivalenceClassSize()) + "String_Node_Str" + String.valueOf(statistics.getMinimalEquivalenceClassSizeIncludingOutliers())+ "String_Node_Str"});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getMaximalEquivalenceClassSize()) + "String_Node_Str" + String.valueOf(statistics.getMaximalEquivalenceClassSizeIncludingOutliers())+ "String_Node_Str"});
    new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(statistics.getAverageEquivalenceClassSize()) + "String_Node_Str" + String.valueOf(statistics.getAverageEquivalenceClassSizeIncludingOutliers())+ "String_Node_Str"});
  }
  if (node.getMaximumInformationLoss().getValue() == node.getMinimumInformationLoss().getValue()) {
    final String infoloss=String.valueOf(node.getMinimumInformationLoss().getValue()) + "String_Node_Str" + format.format(asRelativeValue(node.getMinimumInformationLoss(),result))+ "String_Node_Str";
    new Property(Resources.getMessage("String_Node_Str"),new String[]{infoloss});
  }
  new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(node.getSuccessors().length)});
  new Property(Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(node.getPredecessors().length)});
  new Property(Resources.getMessage("String_Node_Str"),new String[]{Arrays.toString(node.getTransformation())});
  if (node.isAnonymous() == Anonymity.ANONYMOUS) {
    if (context.config.containsCriterion(DPresence.class)) {
      DPresence criterion=context.config.getCriterion(DPresence.class);
      if (!(criterion.getDMin() == 0d && criterion.getDMax() == 1d)) {
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getDMin())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getDMax())});
      }
    }
    if (context.config.containsCriterion(KAnonymity.class)) {
      KAnonymity criterion=context.config.getCriterion(KAnonymity.class);
      Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
      new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getK())});
    }
    int index=0;
    for (    PrivacyCriterion c : context.config.getCriteria()) {
      if (c instanceof DistinctLDiversity) {
        DistinctLDiversity criterion=(DistinctLDiversity)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getL())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
      }
 else       if (c instanceof EntropyLDiversity) {
        EntropyLDiversity criterion=(EntropyLDiversity)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getL())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
      }
 else       if (c instanceof RecursiveCLDiversity) {
        RecursiveCLDiversity criterion=(RecursiveCLDiversity)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getC())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getL())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
      }
 else       if (c instanceof EqualDistanceTCloseness) {
        EqualDistanceTCloseness criterion=(EqualDistanceTCloseness)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getT())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
      }
 else       if (c instanceof HierarchicalDistanceTCloseness) {
        HierarchicalDistanceTCloseness criterion=(HierarchicalDistanceTCloseness)c;
        Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getT())});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{criterion.getAttribute()});
        final int height=context.config.getHierarchy(criterion.getAttribute()).getHierarchy()[0].length;
        new Property(n,"String_Node_Str" + (index++),new String[]{Resources.getMessage("String_Node_Str") + String.valueOf(height)});
      }
    }
  }
 else {
    new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
  }
  treeViewer.refresh();
  treeViewer.expandAll();
  root.setRedraw(true);
}