Program: 108093
Project: 108093
Buggy source:
/** 
 * Update the view.
 */
protected void update(){
  AnalysisData context=getContext().getData();
  if (context == null || context.config == null || context.handle == null) {
    reset();
    return;
  }
  root.setRedraw(false);
  ARXResult result=model.getResult();
  ARXNode node=model.getSelectedNode();
  roots.clear();
  StatisticsEquivalenceClasses 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().equals(node.getMinimumInformationLoss().getValue())) {
    final String infoloss=node.getMinimumInformationLoss().toString() + "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.getAnonymity() == 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)});
      }
    }
    Set<RiskBasedCriterion> criteria=context.config.getCriteria(RiskBasedCriterion.class);
    for (    RiskBasedCriterion criterion : criteria) {
      String type="String_Node_Str";
      if (criterion instanceof AverageReidentificationRisk) {
        type=Resources.getMessage("String_Node_Str");
      }
 else       if (criterion instanceof PopulationUniqueness) {
        type=Resources.getMessage("String_Node_Str");
      }
 else       if (criterion instanceof SampleUniqueness) {
        type=Resources.getMessage("String_Node_Str");
      }
      Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{type});
      new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getRiskThreshold())});
      if (criterion instanceof PopulationUniqueness) {
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(((PopulationUniqueness)criterion).getPopulationModel().getSamplingFraction(context.handle))});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{((PopulationUniqueness)criterion).getStatisticalModel().toString()});
      }
    }
  }
 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(){
  AnalysisData context=getContext().getData();
  if (context == null || context.config == null || context.handle == null) {
    reset();
    return;
  }
  root.setRedraw(false);
  ARXResult result=model.getResult();
  ARXNode node=model.getSelectedNode();
  roots.clear();
  StatisticsEquivalenceClasses 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.getNumberOfEquivalenceClasses())});
    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().equals(node.getMinimumInformationLoss().getValue())) {
    final String infoloss=node.getMinimumInformationLoss().toString() + "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.getAnonymity() == 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)});
      }
    }
    Set<RiskBasedCriterion> criteria=context.config.getCriteria(RiskBasedCriterion.class);
    for (    RiskBasedCriterion criterion : criteria) {
      String type="String_Node_Str";
      if (criterion instanceof AverageReidentificationRisk) {
        type=Resources.getMessage("String_Node_Str");
      }
 else       if (criterion instanceof PopulationUniqueness) {
        type=Resources.getMessage("String_Node_Str");
      }
 else       if (criterion instanceof SampleUniqueness) {
        type=Resources.getMessage("String_Node_Str");
      }
      Property n=new Property(Resources.getMessage("String_Node_Str"),new String[]{type});
      new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(criterion.getRiskThreshold())});
      if (criterion instanceof PopulationUniqueness) {
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{String.valueOf(((PopulationUniqueness)criterion).getPopulationModel().getSamplingFraction(context.handle))});
        new Property(n,Resources.getMessage("String_Node_Str"),new String[]{((PopulationUniqueness)criterion).getStatisticalModel().toString()});
      }
    }
  }
 else {
    new Property(Resources.getMessage("String_Node_Str"),new String[]{Resources.getMessage("String_Node_Str")});
  }
  treeViewer.refresh();
  treeViewer.expandAll();
  root.setRedraw(true);
}