nus-yam/ex-repair huggingface dataset:
Program: 108949
Project: 108949
Buggy source:
/** 
 * Cell selection event
 * @param arg1
 */
protected void actionCellSelected(CellSelectionEvent arg1){
  if (model == null)   return;
  int column=arg1.getColumnPosition();
  int row=arg1.getRowPosition();
  if (column == 0 && row >= 0) {
    if (table.getData() instanceof DataHandleSubset) {
      int[] subset=((DataHandleSubset)table.getData()).getSubset();
      row=subset[row];
    }
    RowSet subset=model.getInputConfig().getResearchSubset();
    if (subset.contains(row)) {
      subset.remove(row);
    }
 else {
      subset.add(row);
    }
    model.setSubsetManual();
    controller.update(new ModelEvent(this,ModelPart.RESEARCH_SUBSET,subset));
  }
}

Fixed version (ground truth):
/** 
 * Cell selection event
 * @param arg1
 */
protected abstract void actionCellSelected(CellSelectionEvent arg1);
Program: 108951
Project: 108951
Buggy source:
/** 
 * Creates a new data view
 * @param parent
 * @param controller
 */
public ViewDataOutput(final Composite parent,final Controller controller){
  super(parent,controller,("String_Node_Str"));
  controller.addListener(ModelPart.INPUT,this);
  controller.addListener(ModelPart.OUTPUT,this);
}

Fixed version (ground truth):
/** 
 * Creates a new data view
 * @param parent
 * @param controller
 */
public ViewDataOutput(final Composite parent,final Controller controller){
  super(parent,controller,Resources.getMessage("String_Node_Str"));
  controller.addListener(ModelPart.INPUT,this);
  controller.addListener(ModelPart.OUTPUT,this);
}
Program: 108952
Project: 108952
Buggy source:
/** 
 * Updates the header image in the table
 * @param index
 * @param type
 */
protected void updateHeaderImage(final int index,final AttributeType type){
  if (table.getHeaderImages().size() <= index) {
    table.getHeaderImages().add(null);
  }
  if (type == AttributeType.INSENSITIVE_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_INSENSITIVE);
  }
 else   if (type == AttributeType.IDENTIFYING_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_IDENTIFYING);
  }
 else   if (type == AttributeType.SENSITIVE_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_SENSITIVE);
  }
 else {
    table.getHeaderImages().set(index,IMAGE_QUASI_IDENTIFYING);
  }
}

Fixed version (ground truth):
/** 
 * Updates the header image in the table
 * @param index
 * @param type
 */
protected void updateHeaderImage(final int index,final AttributeType type){
  while (table.getHeaderImages().size() <= index) {
    table.getHeaderImages().add(null);
  }
  if (type == AttributeType.INSENSITIVE_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_INSENSITIVE);
  }
 else   if (type == AttributeType.IDENTIFYING_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_IDENTIFYING);
  }
 else   if (type == AttributeType.SENSITIVE_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_SENSITIVE);
  }
 else {
    table.getHeaderImages().set(index,IMAGE_QUASI_IDENTIFYING);
  }
}
Program: 108954
Project: 108954
Buggy source:
public void addScrollBarListener(final Listener listener){
  table.addScrollBarListener(listener);
}

Fixed version (ground truth):
/** 
 * Add a scrollbar listener to this view
 * @param listener
 */
public void addScrollBarListener(final Listener listener){
  table.addScrollBarListener(listener);
}
Program: 108955
Project: 108955
Buggy source:
/** 
 * Column selection event
 * @param arg1
 */
private void actionColumnSelected(ColumnSelectionEvent arg1){
  if (model != null) {
    int column=arg1.getColumnPositionRanges().iterator().next().start - 1;
    if (column >= 0) {
      final String attr=handle.getAttributeName(column);
      table.setAttribute(attr);
      table.redraw();
      model.setSelectedAttribute(attr);
      controller.update(new ModelEvent(this,ModelPart.SELECTED_ATTRIBUTE,attr));
    }
  }
}

Fixed version (ground truth):
/** 
 * Column selection event
 * @param arg1
 */
protected void actionColumnSelected(ColumnSelectionEvent arg1){
  if (model != null) {
    int column=arg1.getColumnPositionRanges().iterator().next().start - 1;
    if (column >= 0) {
      DataHandle handle=getHandle();
      if (handle != null) {
        final String attr=handle.getAttributeName(column);
        table.setAttribute(attr);
        table.redraw();
        model.setSelectedAttribute(attr);
        controller.update(new ModelEvent(this,ModelPart.SELECTED_ATTRIBUTE,attr));
      }
    }
  }
}
Program: 108957
Project: 108957
Buggy source:
@Override public void reset(){
  table.reset();
  groupsButton.setEnabled(false);
  subsetButton.setEnabled(false);
  handle=null;
}

Fixed version (ground truth):
@Override public void reset(){
  table.reset();
  groupsButton.setEnabled(false);
  subsetButton.setEnabled(false);
}
Program: 108959
Project: 108959
Buggy source:
/** 
 * Updates the header image in the table
 * @param index
 * @param type
 */
private void updateHeaderImage(final int index,final AttributeType type){
  if (table.getHeaderImages().size() <= index) {
    table.getHeaderImages().add(null);
  }
  if (type == AttributeType.INSENSITIVE_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_INSENSITIVE);
  }
 else   if (type == AttributeType.IDENTIFYING_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_IDENTIFYING);
  }
 else   if (type == AttributeType.SENSITIVE_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_SENSITIVE);
  }
 else {
    table.getHeaderImages().set(index,IMAGE_QUASI_IDENTIFYING);
  }
}

Fixed version (ground truth):
/** 
 * Updates the header image in the table
 * @param index
 * @param type
 */
protected void updateHeaderImage(final int index,final AttributeType type){
  if (table.getHeaderImages().size() <= index) {
    table.getHeaderImages().add(null);
  }
  if (type == AttributeType.INSENSITIVE_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_INSENSITIVE);
  }
 else   if (type == AttributeType.IDENTIFYING_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_IDENTIFYING);
  }
 else   if (type == AttributeType.SENSITIVE_ATTRIBUTE) {
    table.getHeaderImages().set(index,IMAGE_SENSITIVE);
  }
 else {
    table.getHeaderImages().set(index,IMAGE_QUASI_IDENTIFYING);
  }
}
Program: 108960
Project: 108960
Buggy source:
/** 
 * Cell selection event
 * @param arg1
 */
private void actionCellSelected(CellSelectionEvent arg1){
  if (model == null)   return;
  int column=arg1.getColumnPosition();
  int row=arg1.getRowPosition();
  if (column == 0 && row >= 0) {
    if (table.getData() instanceof DataHandleSubset) {
      int[] subset=((DataHandleSubset)table.getData()).getSubset();
      row=subset[row];
    }
    RowSet subset=model.getInputConfig().getResearchSubset();
    if (subset.contains(row)) {
      subset.remove(row);
    }
 else {
      subset.add(row);
    }
    model.setSubsetManual();
    controller.update(new ModelEvent(this,ModelPart.RESEARCH_SUBSET,subset));
  }
}

Fixed version (ground truth):
/** 
 * Cell selection event
 * @param arg1
 */
protected void actionCellSelected(CellSelectionEvent arg1){
  if (model == null)   return;
  int column=arg1.getColumnPosition();
  int row=arg1.getRowPosition();
  if (column == 0 && row >= 0) {
    if (table.getData() instanceof DataHandleSubset) {
      int[] subset=((DataHandleSubset)table.getData()).getSubset();
      row=subset[row];
    }
    RowSet subset=model.getInputConfig().getResearchSubset();
    if (subset.contains(row)) {
      subset.remove(row);
    }
 else {
      subset.add(row);
    }
    model.setSubsetManual();
    controller.update(new ModelEvent(this,ModelPart.RESEARCH_SUBSET,subset));
  }
}
Program: 108961
Project: 108961
Buggy source:
public ViewportLayer getViewportLayer(){
  return table.getViewportLayer();
}

Fixed version (ground truth):
/** 
 * Returns the NatTable viewport layer
 * @return
 */
public ViewportLayer getViewportLayer(){
  return table.getViewportLayer();
}
Program: 108962
Project: 108962
Buggy source:
@Override @SuppressWarnings("String_Node_Str") protected InformationLossDefault evaluateInternal(final Node node,final IHashGroupify g){
  final double originalInfoLoss=super.evaluateInternal(node,g).getValue();
  double suppressedTuples=0;
  double additionalInfoLoss=0;
  int key;
  Integer val;
  final Map<Integer,Integer>[] original=new Map[node.getTransformation().length];
  for (int i=0; i < original.length; i++) {
    original[i]=new HashMap<Integer,Integer>();
  }
  HashGroupifyEntry m=g.getFirstEntry();
  while (m != null) {
    if (!m.isNotOutlier) {
      suppressedTuples+=m.count;
      for (int i=0; i < original.length; i++) {
        key=m.key[i];
        val=original[i].get(key);
        if (val == null) {
          original[i].put(key,m.count);
        }
 else {
          original[i].put(key,m.count + val);
        }
      }
    }
    m=m.nextOrdered;
  }
  for (int i=0; i < original.length; i++) {
    for (    final double count : original[i].values()) {
      additionalInfoLoss+=count * MetricEntropy.log2(count / suppressedTuples);
    }
  }
  return new InformationLossDefault(originalInfoLoss - additionalInfoLoss);
}

Fixed version (ground truth):
@Override @SuppressWarnings("String_Node_Str") protected InformationLossDefault evaluateInternal(final Node node,final IHashGroupify g){
  final double originalInfoLoss=super.evaluateInternal(node,g).getValue();
  double suppressedTuples=0;
  double additionalInfoLoss=0;
  int key;
  Integer val;
  final Map<Integer,Integer>[] original=new Map[node.getTransformation().length];
  for (int i=0; i < original.length; i++) {
    original[i]=new HashMap<Integer,Integer>();
  }
  HashGroupifyEntry m=g.getFirstEntry();
  while (m != null) {
    if (!m.isNotOutlier && m.count > 0) {
      suppressedTuples+=m.count;
      for (int i=0; i < original.length; i++) {
        key=m.key[i];
        val=original[i].get(key);
        if (val == null) {
          original[i].put(key,m.count);
        }
 else {
          original[i].put(key,m.count + val);
        }
      }
    }
    m=m.nextOrdered;
  }
  if (suppressedTuples != 0) {
    for (int i=0; i < original.length; i++) {
      for (      final double count : original[i].values()) {
        additionalInfoLoss+=count * MetricEntropy.log2(count / suppressedTuples);
      }
    }
  }
  return new InformationLossDefault(originalInfoLoss - additionalInfoLoss);
}
Program: 108964
Project: 108964
Buggy source:
/** 
 * Writes the hierarchies to the file
 * @param zip
 * @throws IOException
 */
private void writeHierarchies(final ModelConfiguration config,final String prefix,final ZipOutputStream zip) throws IOException {
  if (config.getInput() != null) {
    if (config.getInput().getDefinition() != null) {
      for (      final String a : config.getInput().getDefinition().getQuasiIdentifyingAttributes()) {
        final String[][] h=config.getInput().getDefinition().getHierarchy(a);
        if (h != null) {
          zip.putNextEntry(new ZipEntry(prefix + "String_Node_Str" + toFileName(a)+ "String_Node_Str"));
          final CSVDataOutput out=new CSVDataOutput(zip,model.getSeparator());
          out.write(h);
        }
      }
    }
  }
  Set<String> additional=new HashSet<String>();
  for (  HierarchicalDistanceTCloseness c : config.getCriteria(HierarchicalDistanceTCloseness.class)) {
    additional.add(c.getAttribute());
  }
  for (  String attribute : additional) {
    Hierarchy h=model.getOutputConfig().getHierarchy(attribute);
    zip.putNextEntry(new ZipEntry(prefix + "String_Node_Str" + toFileName(attribute)+ "String_Node_Str"));
    final CSVDataOutput out=new CSVDataOutput(zip,model.getSeparator());
    out.write(h.getHierarchy());
  }
}

Fixed version (ground truth):
/** 
 * Writes the hierarchies to the file
 * @param zip
 * @throws IOException
 */
private void writeHierarchies(final ModelConfiguration config,final String prefix,final ZipOutputStream zip) throws IOException {
  if (config.getInput() != null) {
    if (config.getInput().getDefinition() != null) {
      for (      final String a : config.getInput().getDefinition().getQuasiIdentifyingAttributes()) {
        final String[][] h=config.getInput().getDefinition().getHierarchy(a);
        if (h != null) {
          zip.putNextEntry(new ZipEntry(prefix + "String_Node_Str" + toFileName(a)+ "String_Node_Str"));
          final CSVDataOutput out=new CSVDataOutput(zip,model.getSeparator());
          out.write(h);
        }
      }
    }
  }
  Set<String> additional=new HashSet<String>();
  for (  HierarchicalDistanceTCloseness c : config.getCriteria(HierarchicalDistanceTCloseness.class)) {
    additional.add(c.getAttribute());
  }
  for (  String attribute : additional) {
    Hierarchy h=config.getHierarchy(attribute);
    zip.putNextEntry(new ZipEntry(prefix + "String_Node_Str" + toFileName(attribute)+ "String_Node_Str"));
    final CSVDataOutput out=new CSVDataOutput(zip,model.getSeparator());
    out.write(h.getHierarchy());
  }
}
Program: 108966
Project: 108966
Buggy source:
/** 
 * Gets the handle.
 * @return the handle
 */
@Override public DataHandle getHandle(final ARXNode fnode){
  currentNode=fnode;
  if ((currentNode != null) && (currentNode == lastNode)) {
    return this;
  }
  lastNode=currentNode;
  final Node node=new Node(0);
  node.setTransformation(fnode.getTransformation(),0);
  if (currentNode.isChecked()) {
    node.setChecked();
  }
  checker.transformAndMarkOutliers(node);
  if (!currentNode.isChecked()) {
    currentNode.access().setChecked(true);
    if (node.isAnonymous()) {
      currentNode.access().setAnonymous();
    }
 else {
      currentNode.access().setNotAnonymous();
    }
    currentNode.access().setMaximumInformationLoss(node.getInformationLoss());
    currentNode.access().setMinimumInformationLoss(node.getInformationLoss());
    lattice.estimateInformationLoss();
  }
  createDataTypeArray();
  return this;
}

Fixed version (ground truth):
/** 
 * Gets the handle.
 * @return the handle
 */
@Override public DataHandle getHandle(final ARXNode fnode){
  currentNode=fnode;
  if ((currentNode != null) && (currentNode == lastNode)) {
    return this;
  }
  lastNode=currentNode;
  final Node node=new Node(0);
  int level=0;
  for (  int i : fnode.getTransformation())   level+=i;
  node.setTransformation(fnode.getTransformation(),level);
  if (currentNode.isChecked()) {
    node.setChecked();
  }
  checker.transformAndMarkOutliers(node);
  if (!currentNode.isChecked()) {
    currentNode.access().setChecked(true);
    if (node.isAnonymous()) {
      currentNode.access().setAnonymous();
    }
 else {
      currentNode.access().setNotAnonymous();
    }
    currentNode.access().setMaximumInformationLoss(node.getInformationLoss());
    currentNode.access().setMinimumInformationLoss(node.getInformationLoss());
    lattice.estimateInformationLoss();
  }
  createDataTypeArray();
  return this;
}
Program: 108967
Project: 108967
Buggy source:
/** 
 * Creates a new combined metric
 * @param main
 */
protected MetricCombined(final Metric<?> main,final Set<Metric<?>> metrics){
  super(main.isMonotonic(),isIndependent(main,metrics));
}

Fixed version (ground truth):
/** 
 * Creates a new combined metric
 * @param main
 */
protected MetricCombined(final Metric<?> main,final Set<Metric<?>> metrics){
  super(main.isMonotonic(),isIndependent(main,metrics));
  this.main=main;
  this.metrics=metrics;
}
Program: 108968
Project: 108968
Buggy source:
@Override protected InformationLossCombined evaluateInternal(final Node node,final IHashGroupify groupify){
  final double value=main.evaluateInternal(node,groupify).getValue();
  final InformationLossCombined result=new InformationLossCombined(value);
  for (  final Metric<?> metric : metrics) {
    result.setValue(metric,metric.evaluateInternal(node,groupify));
  }
  return result;
}

Fixed version (ground truth):
@Override protected InformationLossCombined evaluateInternal(final Node node,final IHashGroupify groupify){
  final double value=main.evaluateInternal(node,groupify).getValue();
  final InformationLossCombined result=new InformationLossCombined(value);
  for (  final Metric<?> metric : metrics) {
    InformationLoss loss=metric.evaluateInternal(node,groupify);
    result.setValue(metric,loss);
  }
  return result;
}
Program: 108969
Project: 108969
Buggy source:
@Override public void update(final ModelEvent event){
  if (event.part == ModelPart.MODEL) {
    model=(Model)event.data;
    root.setRedraw(false);
    sliderOutliers.setSelection(doubleToSlider(0d,0.999d,model.getInputConfig().getAllowedOutliers()));
    labelOutliers.setText(String.valueOf(model.getInputConfig().getAllowedOutliers()));
    buttonPracticalMonotonicity.setSelection(model.getInputConfig().isPracticalMonotonicity());
    for (int i=0; i < ITEMS_METRIC.length; i++) {
      if (ITEMS_METRIC[i].getClass().equals(model.getInputConfig().getMetric().getClass())) {
        comboMetric.select(i);
        break;
      }
    }
    updateControlls();
    root.setRedraw(true);
  }
 else   if (event.part == ModelPart.INPUT) {
    SWTUtil.enable(root);
    updateControlls();
  }
 else   if (event.part == ModelPart.SELECTED_ATTRIBUTE || event.part == ModelPart.ATTRIBUTE_TYPE || event.part == ModelPart.CRITERION_DEFINITION) {
    if (model != null) {
      updateControlls();
    }
  }
}

Fixed version (ground truth):
@Override public void update(final ModelEvent event){
  if (event.part == ModelPart.MODEL) {
    model=(Model)event.data;
    root.setRedraw(false);
    sliderOutliers.setSelection(doubleToSlider(0d,0.999d,model.getInputConfig().getAllowedOutliers()));
    labelOutliers.setText(String.valueOf(model.getInputConfig().getAllowedOutliers()));
    buttonPracticalMonotonicity.setSelection(model.getInputConfig().isPracticalMonotonicity());
    buttonProtectSensitiveAssociations.setSelection(model.getInputConfig().isProtectSensitiveAssociations());
    for (int i=0; i < ITEMS_METRIC.length; i++) {
      if (ITEMS_METRIC[i].getClass().equals(model.getInputConfig().getMetric().getClass())) {
        comboMetric.select(i);
        break;
      }
    }
    updateControlls();
    root.setRedraw(true);
  }
 else   if (event.part == ModelPart.INPUT) {
    SWTUtil.enable(root);
    updateControlls();
  }
 else   if (event.part == ModelPart.SELECTED_ATTRIBUTE || event.part == ModelPart.ATTRIBUTE_TYPE || event.part == ModelPart.CRITERION_DEFINITION) {
    if (model != null) {
      updateControlls();
    }
  }
}
Program: 108970
Project: 108970
Buggy source:
@Override public void reset(){
  disable();
}

Fixed version (ground truth):
@Override public void reset(){
  size.setText("String_Node_Str");
  total.setText("String_Node_Str");
  percent.setText("String_Node_Str");
  origin.setText("String_Node_Str");
  disable();
}
Program: 108971
Project: 108971
Buggy source:
private void update(){
  int size=model.getInputConfig().getResearchSubset().size();
  int total=model.getInputConfig().getInput().getHandle().getNumRows();
  double percent=(double)size / (double)total * 100d;
  this.size.setText(String.valueOf(size));
  this.total.setText(String.valueOf(total));
  this.percent.setText(format.format(percent));
  if (this.model != null) {
    this.origin.setText(model.getSubsetOrigin());
  }
}

Fixed version (ground truth):
private void update(){
  if (model.getInputConfig().getResearchSubset() == null) {
    reset();
    return;
  }
  int size=model.getInputConfig().getResearchSubset().size();
  int total=model.getInputConfig().getInput().getHandle().getNumRows();
  double percent=(double)size / (double)total * 100d;
  this.size.setText(String.valueOf(size));
  this.total.setText(String.valueOf(total));
  this.percent.setText(format.format(percent));
  if (this.model != null) {
    this.origin.setText(model.getSubsetOrigin());
  }
}
Program: 108972
Project: 108972
Buggy source:
/** 
 * A negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. It uses the specified data types for comparison if no generalization was applied, otherwise it uses string comparison.
 * @param row1 the row1
 * @param row2 the row2
 * @param columns the columns
 * @param ascending the ascending
 * @return the int
 */
@Override protected int compare(final int row1,final int row2,final int[] columns,final boolean ascending){
  getHandle(currentNode);
  for (  final int index : columns) {
    final int attributeType=inverseMap[index] >>> AttributeType.SHIFT;
    final int indexMap=inverseMap[index] & AttributeType.MASK;
    int cmp=0;
    try {
      cmp=dataTypes[attributeType][indexMap].compare(getValueInternal(row1,index),getValueInternal(row2,index));
    }
 catch (    final Exception e) {
      throw new RuntimeException(e);
    }
    if (cmp != 0) {
      if (ascending) {
        return -cmp;
      }
 else {
        return cmp;
      }
    }
  }
  return 0;
}

Fixed version (ground truth):
/** 
 * A negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. It uses the specified data types for comparison if no generalization was applied, otherwise it uses string comparison.
 * @param row1 the row1
 * @param row2 the row2
 * @param columns the columns
 * @param ascending the ascending
 * @return the int
 */
@Override protected int compare(final int row1,final int row2,final int[] columns,final boolean ascending){
  getHandle(currentNode);
  for (  final int index : columns) {
    final int attributeType=inverseMap[index] >>> AttributeType.SHIFT;
    final int indexMap=inverseMap[index] & AttributeType.MASK;
    if (attributeType == AttributeType.ATTR_TYPE_ID)     return 0;
    int cmp=0;
    try {
      cmp=dataTypes[attributeType][indexMap].compare(getValueInternal(row1,index),getValueInternal(row2,index));
    }
 catch (    final Exception e) {
      throw new RuntimeException(e);
    }
    if (cmp != 0) {
      if (ascending) {
        return -cmp;
      }
 else {
        return cmp;
      }
    }
  }
  return 0;
}
Program: 108973
Project: 108973
Buggy source:
private DataHandle getData(){
  ModelConfiguration config=model.getOutputConfig();
  if (config == null) {
    config=model.getInputConfig();
  }
  final DataHandle data;
  if (target == ModelPart.INPUT) {
    data=config.getInput().getHandle().getView(config.getConfig());
  }
 else {
    data=model.getOutput().getView(config.getConfig());
  }
  if ((config == null) || (data == null)) {
    return null;
  }
 else {
    return data;
  }
}

Fixed version (ground truth):
private DataHandle getData(){
  ModelConfiguration config=model.getOutputConfig();
  if (config == null) {
    config=model.getInputConfig();
  }
  DataHandle data;
  if (target == ModelPart.INPUT) {
    data=config.getInput().getHandle();
  }
 else {
    data=model.getOutput();
  }
  if (data != null)   data=data.getView(config.getConfig());
  if ((config == null) || (data == null)) {
    return null;
  }
 else {
    return data;
  }
}
Program: 108975
Project: 108975
Buggy source:
@Override public void reset(){
  table.reset();
  handle=null;
}

Fixed version (ground truth):
@Override public void reset(){
  table.reset();
  groupsButton.setEnabled(false);
  subsetButton.setEnabled(false);
  handle=null;
}
Program: 108977
Project: 108977
Buggy source:
public void setData(final DataHandle handle){
  this.table.setRedraw(false);
  this.context.reset();
  this.context.setHandle(handle);
  this.gridLayer=new DataTableGridLayerStack(new DataTableHandleDataProvider(handle,context),table,context);
  this.table.setLayer(gridLayer);
  this.table.refresh();
  this.gridLayer.getBodyLayer().getViewportLayer().recalculateScrollBars();
  ((DataLayer)this.gridLayer.getBodyDataLayer()).setColumnWidthByPosition(0,18);
  ((DataLayer)this.gridLayer.getBodyDataLayer()).setColumnPositionResizable(0,false);
  this.table.getVerticalBar().setVisible(false);
  this.table.getHorizontalBar().setVisible(false);
  this.table.setRedraw(true);
  this.table.redraw();
  this.table.setVisible(true);
  this.table.getVerticalBar().setVisible(true);
  this.table.getHorizontalBar().setVisible(true);
  this.table.setVisible(true);
}

Fixed version (ground truth):
public void setData(final DataHandle handle){
  this.table.setRedraw(false);
  this.context.setHandle(handle);
  this.context.setArray(null);
  this.gridLayer=new DataTableGridLayerStack(new DataTableHandleDataProvider(handle,context),table,context);
  this.table.setLayer(gridLayer);
  this.table.refresh();
  this.gridLayer.getBodyLayer().getViewportLayer().recalculateScrollBars();
  ((DataLayer)this.gridLayer.getBodyDataLayer()).setColumnWidthByPosition(0,18);
  ((DataLayer)this.gridLayer.getBodyDataLayer()).setColumnPositionResizable(0,false);
  this.table.getVerticalBar().setVisible(false);
  this.table.getHorizontalBar().setVisible(false);
  this.table.setRedraw(true);
  this.table.redraw();
  this.table.setVisible(true);
  this.table.getVerticalBar().setVisible(true);
  this.table.getHorizontalBar().setVisible(true);
  this.table.setVisible(true);
}
Program: 108978
Project: 108978
Buggy source:
public void setRows(RowSet rows){
  this.rows=rows;
}

Fixed version (ground truth):
public void setRows(RowSet rows){
  System.out.println("String_Node_Str" + rows);
  this.rows=rows;
}
Program: 108979
Project: 108979
Buggy source:
public MainWindow(){
  display=new Display();
  shell=new Shell(display);
  controller=new Controller(this);
  controller.addListener(ModelPart.MODEL,this);
  shell.setImage(controller.getResources().getImage("String_Node_Str"));
  shell.setMaximized(true);
  shell.setText(TITLE);
  shell.setMinimumSize(800,600);
  tooltip=new MainToolTip(shell);
  popup=new MainPopUp(shell);
  shell.addListener(SWT.Close,new Listener(){
    @Override public void handleEvent(    final Event event){
      controller.actionMenuFileExit();
      event.doit=false;
    }
  }
);
  new MainMenu(shell,controller);
  new MainToolBar(shell,controller);
  shell.setLayout(SWTUtil.createGridLayout(1));
  root=new ComponentTitledFolder(shell,controller,null,"String_Node_Str");
  root.setLayoutData(SWTUtil.createFillGridData());
  Composite item1=root.createItem(TAB_DEFINE_TRANSFORMATION,controller.getResources().getImage("String_Node_Str"));
  new LayoutDefinition(item1,controller);
  Composite item2=root.createItem(TAB_EXPLORE_SEARCHSPACE,controller.getResources().getImage("String_Node_Str"));
  new LayoutExplore(item2,controller);
  Composite item3=root.createItem(TAB_ANALYZE_DATA,controller.getResources().getImage("String_Node_Str"));
  new LayoutAnalyze(item3,controller);
  controller.reset();
}

Fixed version (ground truth):
public MainWindow(){
  Display current=Display.getCurrent();
  display=current != null ? current : new Display();
  shell=new Shell(display);
  controller=new Controller(this);
  controller.addListener(ModelPart.MODEL,this);
  shell.setImage(controller.getResources().getImage("String_Node_Str"));
  shell.setMaximized(true);
  shell.setText(TITLE);
  shell.setMinimumSize(800,600);
  tooltip=new MainToolTip(shell);
  popup=new MainPopUp(shell);
  shell.addListener(SWT.Close,new Listener(){
    @Override public void handleEvent(    final Event event){
      controller.actionMenuFileExit();
      event.doit=false;
    }
  }
);
  new MainMenu(shell,controller);
  new MainToolBar(shell,controller);
  shell.setLayout(SWTUtil.createGridLayout(1));
  root=new ComponentTitledFolder(shell,controller,null,"String_Node_Str");
  root.setLayoutData(SWTUtil.createFillGridData());
  Composite item1=root.createItem(TAB_DEFINE_TRANSFORMATION,controller.getResources().getImage("String_Node_Str"));
  new LayoutDefinition(item1,controller);
  Composite item2=root.createItem(TAB_EXPLORE_SEARCHSPACE,controller.getResources().getImage("String_Node_Str"));
  new LayoutExplore(item2,controller);
  Composite item3=root.createItem(TAB_ANALYZE_DATA,controller.getResources().getImage("String_Node_Str"));
  new LayoutAnalyze(item3,controller);
  controller.reset();
}
Program: 108981
Project: 108981
Buggy source:
public void setData(final DataHandle handle){
  this.table.setRedraw(false);
  this.context.reset();
  this.context.setHandle(handle);
  this.gridLayer=new DataTableGridLayerStack(new DataTableHandleDataProvider(handle,context),context);
  this.table.setLayer(gridLayer);
  this.table.refresh();
  this.gridLayer.getBodyLayer().getViewportLayer().recalculateScrollBars();
  ((DataLayer)this.gridLayer.getBodyDataLayer()).setColumnWidthByPosition(0,18);
  ((DataLayer)this.gridLayer.getBodyDataLayer()).setColumnPositionResizable(0,false);
  this.table.getVerticalBar().setVisible(false);
  this.table.getHorizontalBar().setVisible(false);
  this.table.setRedraw(true);
  this.table.redraw();
  this.table.setVisible(true);
  this.table.getVerticalBar().setVisible(true);
  this.table.getHorizontalBar().setVisible(true);
  this.table.setVisible(true);
}

Fixed version (ground truth):
public void setData(final DataHandle handle){
  this.table.setRedraw(false);
  this.context.reset();
  this.context.setHandle(handle);
  this.gridLayer=new DataTableGridLayerStack(new DataTableHandleDataProvider(handle,context),table,context);
  this.table.setLayer(gridLayer);
  this.table.refresh();
  this.gridLayer.getBodyLayer().getViewportLayer().recalculateScrollBars();
  ((DataLayer)this.gridLayer.getBodyDataLayer()).setColumnWidthByPosition(0,18);
  ((DataLayer)this.gridLayer.getBodyDataLayer()).setColumnPositionResizable(0,false);
  this.table.getVerticalBar().setVisible(false);
  this.table.getHorizontalBar().setVisible(false);
  this.table.setRedraw(true);
  this.table.redraw();
  this.table.setVisible(true);
  this.table.getVerticalBar().setVisible(true);
  this.table.getHorizontalBar().setVisible(true);
  this.table.setVisible(true);
}
Program: 108982
Project: 108982
Buggy source:
public ComponentDataTable(final Controller controller,final Composite parent){
  this.table=createControl(parent);
  this.context=new DataTableContext(this.table);
  this.table.setVisible(false);
}

Fixed version (ground truth):
public ComponentDataTable(final Controller controller,final Composite parent){
  this.context=new DataTableContext(controller);
  this.table=createControl(parent);
  this.table.setVisible(false);
}
Program: 108984
Project: 108984
Buggy source:
public void reset(){
  this.table.setRedraw(false);
  this.context.getImages().clear();
  this.gridLayer=new DataTableGridLayerStack(new DataTableHandleDataProvider(null,context),context);
  this.context.reset();
  this.table.setLayer(gridLayer);
  this.table.refresh();
  this.gridLayer.getBodyLayer().getViewportLayer().recalculateScrollBars();
  this.table.getVerticalBar().setVisible(false);
  this.table.getHorizontalBar().setVisible(false);
  this.table.setRedraw(true);
  this.table.redraw();
  this.table.setVisible(false);
  this.table.getVerticalBar().setVisible(true);
  this.table.getHorizontalBar().setVisible(true);
  this.table.setVisible(false);
}

Fixed version (ground truth):
public void reset(){
  this.table.setRedraw(false);
  this.context.getImages().clear();
  this.gridLayer=new DataTableGridLayerStack(new DataTableHandleDataProvider(null,context),table,context);
  this.context.reset();
  this.table.setLayer(gridLayer);
  this.table.refresh();
  this.gridLayer.getBodyLayer().getViewportLayer().recalculateScrollBars();
  this.table.getVerticalBar().setVisible(false);
  this.table.getHorizontalBar().setVisible(false);
  this.table.setRedraw(true);
  this.table.redraw();
  this.table.setVisible(false);
  this.table.getVerticalBar().setVisible(true);
  this.table.getHorizontalBar().setVisible(true);
  this.table.setVisible(false);
}
Program: 108985
Project: 108985
Buggy source:
public DataTableBodyLayerStack(IUniqueIndexLayer underlyingLayer,DataTableContext context){
  this.selectionLayer=new SelectionLayer(underlyingLayer);
  this.viewportLayer=new ViewportLayer(selectionLayer);
  this.setUnderlyingLayer(viewportLayer);
  this.setConfigLabelAccumulator(new DataTableConfigLabelAccumulator(context));
  this.registerCommandHandler(new CopyDataCommandHandler(selectionLayer));
}

Fixed version (ground truth):
public DataTableBodyLayerStack(IUniqueIndexLayer underlyingLayer,NatTable table,DataTableContext context){
  this.selectionLayer=new SelectionLayer(underlyingLayer);
  this.viewportLayer=new ViewportLayer(selectionLayer);
  this.setUnderlyingLayer(viewportLayer);
  this.setConfigLabelAccumulator(new DataTableConfigLabelAccumulator(table,context));
  this.registerCommandHandler(new CopyDataCommandHandler(selectionLayer));
}
Program: 108986
Project: 108986
Buggy source:
public DataTableColumnHeaderConfiguration(DataTableContext context){
  this.font=GUIHelper.getFont(new FontData("String_Node_Str",8,SWT.NORMAL));
  this.context=context;
}

Fixed version (ground truth):
public DataTableColumnHeaderConfiguration(DataTableContext context){
  this.font=GUIHelper.getFont(new FontData("String_Node_Str",8,SWT.NORMAL));
  this.context=context;
  IMAGE_COL_BACK=context.getController().getResources().getImage("String_Node_Str");
  IMAGE_COL_SELECT=context.getController().getResources().getImage("String_Node_Str");
}
Program: 108987
Project: 108987
Buggy source:
@Override public void accumulateConfigLabels(LabelStack configLabels,int columnPosition,int rowPosition){
  NatTable table=context.getTable();
  int[] groups=context.getGroups();
  RowSet rows=context.getRows();
  if (table != null && groups != null) {
    int row=table.getRowIndexByPosition(rowPosition + 1);
    configLabels.addLabel("String_Node_Str" + (groups[row] % 2));
    if (row < groups.length - 1 && groups[row] != groups[row + 1]) {
      configLabels.addLabel(DataTableDecorator.BOTTOM_LINE_BORDER_LABEL);
    }
  }
  if (table != null && rows != null) {
    int column=table.getColumnIndexByPosition(columnPosition + 1);
    if (column == 0) {
      configLabels.addLabel("String_Node_Str");
    }
  }
}

Fixed version (ground truth):
@Override public void accumulateConfigLabels(LabelStack configLabels,int columnPosition,int rowPosition){
  int[] groups=context.getGroups();
  RowSet rows=context.getRows();
  if (table != null && groups != null) {
    int row=table.getRowIndexByPosition(rowPosition + 1);
    configLabels.addLabel("String_Node_Str" + (groups[row] % 2));
    if (row < groups.length - 1 && groups[row] != groups[row + 1]) {
      configLabels.addLabel(DataTableDecorator.BOTTOM_LINE_BORDER_LABEL);
    }
  }
  if (table != null && rows != null) {
    int column=table.getColumnIndexByPosition(columnPosition + 1);
    if (column == 0) {
      configLabels.addLabel("String_Node_Str");
    }
  }
}
Program: 108988
Project: 108988
Buggy source:
public DataTableConfigLabelAccumulator(DataTableContext context){
  this.context=context;
}

Fixed version (ground truth):
public DataTableConfigLabelAccumulator(NatTable table,DataTableContext context){
  this.context=context;
  this.table=table;
}
Program: 108989
Project: 108989
Buggy source:
public DataTableContext(NatTable table){
  this.table=table;
}

Fixed version (ground truth):
public DataTableContext(Controller controller){
  this.controller=controller;
}
Program: 108990
Project: 108990
Buggy source:
protected DataTableGridLayer(boolean useDefaultConfiguration,DataTableContext context){
  super(useDefaultConfiguration);
  this.context=context;
}

Fixed version (ground truth):
protected DataTableGridLayer(boolean useDefaultConfiguration,NatTable table,DataTableContext context){
  super(useDefaultConfiguration);
  this.context=context;
  this.table=table;
}
Program: 108991
Project: 108991
Buggy source:
public DataTableGridLayerStack(final IDataProvider bodyDataProvider,DataTableContext context){
  super(true,context);
  List<String> lcolumns=new ArrayList<String>();
  RowSet rows=context.getRows();
  DataHandle handle=context.getHandle();
  String[][] data=context.getArray();
  if (bodyDataProvider.getColumnCount() != 0) {
    if (rows != null) {
      lcolumns.add("String_Node_Str");
    }
    if (handle != null) {
      for (int i=0; i < handle.getNumColumns(); i++) {
        lcolumns.add(handle.getAttributeName(i));
      }
    }
 else     if (data != null) {
      for (int i=0; i < data[0].length; i++) {
        lcolumns.add(data[0][i]);
      }
    }
  }
  String[] columns=lcolumns.toArray(new String[]{});
  final IDataProvider columnHeaderDataProvider=new DefaultColumnHeaderDataProvider(columns);
  final IDataProvider rowHeaderDataProvider=new DefaultRowHeaderDataProvider(bodyDataProvider);
  final IDataProvider cornerDataProvider=new DefaultCornerDataProvider(columnHeaderDataProvider,rowHeaderDataProvider);
  init(bodyDataProvider,columnHeaderDataProvider,rowHeaderDataProvider,cornerDataProvider);
}

Fixed version (ground truth):
public DataTableGridLayerStack(final IDataProvider bodyDataProvider,NatTable table,DataTableContext context){
  super(true,table,context);
  List<String> lcolumns=new ArrayList<String>();
  RowSet rows=context.getRows();
  DataHandle handle=context.getHandle();
  String[][] data=context.getArray();
  if (bodyDataProvider.getColumnCount() != 0) {
    if (rows != null) {
      lcolumns.add("String_Node_Str");
    }
    if (handle != null) {
      for (int i=0; i < handle.getNumColumns(); i++) {
        lcolumns.add(handle.getAttributeName(i));
      }
    }
 else     if (data != null) {
      for (int i=0; i < data[0].length; i++) {
        lcolumns.add(data[0][i]);
      }
    }
  }
  String[] columns=lcolumns.toArray(new String[]{});
  final IDataProvider columnHeaderDataProvider=new DefaultColumnHeaderDataProvider(columns);
  final IDataProvider rowHeaderDataProvider=new DefaultRowHeaderDataProvider(bodyDataProvider);
  final IDataProvider cornerDataProvider=new DefaultCornerDataProvider(columnHeaderDataProvider,rowHeaderDataProvider);
  init(bodyDataProvider,columnHeaderDataProvider,rowHeaderDataProvider,cornerDataProvider);
}
Program: 108992
Project: 108992
Buggy source:
public DataTableRowHeaderConfiguration(){
  font=GUIHelper.getFont(new FontData("String_Node_Str",8,SWT.NORMAL));
  final TextPainter txtPainter=new TextPainter(false,false);
  final ICellPainter bgImagePainter=new BackgroundImagePainter(txtPainter,IMAGE_ROW_BACK,null);
  cellPainter=bgImagePainter;
}

Fixed version (ground truth):
public DataTableRowHeaderConfiguration(DataTableContext context){
  font=GUIHelper.getFont(new FontData("String_Node_Str",8,SWT.NORMAL));
  IMAGE_ROW_BACK=context.getController().getResources().getImage("String_Node_Str");
  IMAGE_ROW_SELECT=context.getController().getResources().getImage("String_Node_Str");
  final TextPainter txtPainter=new TextPainter(false,false);
  final ICellPainter bgImagePainter=new BackgroundImagePainter(txtPainter,IMAGE_ROW_BACK,null);
  cellPainter=bgImagePainter;
}
Program: 108993
Project: 108993
Buggy source:
public ViewDensity(final Composite parent,final Controller controller,final ModelPart target,final ModelPart reset){
  controller.addListener(ModelPart.SELECTED_ATTRIBUTE,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(target,this);
  this.controller=controller;
  if (reset != null) {
    controller.addListener(reset,this);
  }
  this.reset=reset;
  this.target=target;
  canvas=new Canvas(parent,SWT.NONE);
  lws=new LightweightSystem(canvas);
  intensityGraph=new IntensityGraphFigure();
  lws.setContents(intensityGraph);
  intensityGraph.getXAxis().setTitleFont(MainWindow.FONT);
  intensityGraph.getYAxis().setTitleFont(MainWindow.FONT);
  intensityGraph.getXAxis().setFont(MainWindow.FONT);
  intensityGraph.getYAxis().setFont(MainWindow.FONT);
  intensityGraph.setFont(MainWindow.FONT);
  canvas.setBackground(parent.getBackground());
  if (System.getProperty("String_Node_Str").toLowerCase().contains("String_Node_Str")) {
    int r=canvas.getBackground().getRed() - 13;
    int g=canvas.getBackground().getGreen() - 13;
    int b=canvas.getBackground().getBlue() - 13;
    r=r > 0 ? r : 0;
    r=g > 0 ? g : 0;
    r=b > 0 ? b : 0;
    final org.eclipse.swt.graphics.Color c2=new org.eclipse.swt.graphics.Color(controller.getResources().getDisplay(),r,g,b);
    canvas.setBackground(c2);
    canvas.addDisposeListener(new DisposeListener(){
      public void widgetDisposed(      DisposeEvent arg0){
        c2.dispose();
      }
    }
);
  }
  reset();
}

Fixed version (ground truth):
public ViewDensity(final Composite parent,final Controller controller,final ModelPart target,final ModelPart reset){
  controller.addListener(ModelPart.SELECTED_ATTRIBUTE,this);
  controller.addListener(ModelPart.MODEL,this);
  controller.addListener(ModelPart.VIEW_CONFIG,this);
  controller.addListener(target,this);
  this.controller=controller;
  if (reset != null) {
    controller.addListener(reset,this);
  }
  this.reset=reset;
  this.target=target;
  canvas=new Canvas(parent,SWT.NONE);
  lws=new LightweightSystem(canvas);
  intensityGraph=new IntensityGraphFigure();
  lws.setContents(intensityGraph);
  intensityGraph.getXAxis().setTitleFont(MainWindow.FONT);
  intensityGraph.getYAxis().setTitleFont(MainWindow.FONT);
  intensityGraph.getXAxis().setFont(MainWindow.FONT);
  intensityGraph.getYAxis().setFont(MainWindow.FONT);
  intensityGraph.setFont(MainWindow.FONT);
  canvas.setBackground(parent.getBackground());
  if (System.getProperty("String_Node_Str").toLowerCase().contains("String_Node_Str")) {
    int r=canvas.getBackground().getRed() - 13;
    int g=canvas.getBackground().getGreen() - 13;
    int b=canvas.getBackground().getBlue() - 13;
    r=r > 0 ? r : 0;
    r=g > 0 ? g : 0;
    r=b > 0 ? b : 0;
    final org.eclipse.swt.graphics.Color c2=new org.eclipse.swt.graphics.Color(controller.getResources().getDisplay(),r,g,b);
    canvas.setBackground(c2);
    canvas.addDisposeListener(new DisposeListener(){
      public void widgetDisposed(      DisposeEvent arg0){
        c2.dispose();
      }
    }
);
  }
  reset();
}
Program: 108994
Project: 108994
Buggy source:
@Override public void update(final ModelEvent event){
  if (event.part == ModelPart.OUTPUT) {
    canvas.setEnabled(true);
    redraw();
  }
  if (event.part == reset) {
    reset();
  }
 else   if (event.part == ModelPart.MODEL) {
    reset();
    model=(Model)event.data;
  }
 else   if (event.part == target) {
    canvas.setEnabled(true);
    redraw();
  }
 else   if (event.part == ModelPart.SELECTED_ATTRIBUTE) {
    if (model.getAttributePair()[0] != null && model.getAttributePair()[1] != null) {
      canvas.setEnabled(true);
      redraw();
    }
  }
}

Fixed version (ground truth):
@Override public void update(final ModelEvent event){
  if (event.part == ModelPart.OUTPUT) {
    canvas.setEnabled(true);
    redraw();
  }
  if (event.part == reset) {
    reset();
  }
 else   if (event.part == ModelPart.MODEL) {
    reset();
    model=(Model)event.data;
  }
 else   if (event.part == target) {
    canvas.setEnabled(true);
    redraw();
  }
 else   if (event.part == ModelPart.SELECTED_ATTRIBUTE || event.part == ModelPart.VIEW_CONFIG) {
    if (model.getAttributePair()[0] != null && model.getAttributePair()[1] != null) {
      canvas.setEnabled(true);
      redraw();
    }
  }
}
Program: 108995
Project: 108995
Buggy source:
private DataHandle getData(){
  ModelConfiguration config=model.getOutputConfig();
  if (config == null) {
    config=model.getInputConfig();
  }
  DataHandle data;
  if (target == ModelPart.INPUT) {
    data=config.getInput().getHandle();
  }
 else {
    data=model.getOutput();
  }
  if (data != null)   data=data.getView(config.getConfig());
  if ((config == null) || (data == null)) {
    return null;
  }
 else {
    return data;
  }
}

Fixed version (ground truth):
private DataHandle getData(){
  ModelConfiguration config=model.getOutputConfig();
  if (config == null) {
    config=model.getInputConfig();
  }
  DataHandle data;
  if (target == ModelPart.INPUT) {
    data=config.getInput().getHandle();
  }
 else {
    data=model.getOutput();
  }
  if (data != null && model.getViewConfig().isSubset()) {
    data=data.getView(config.getConfig());
  }
  if ((config == null) || (data == null)) {
    return null;
  }
 else {
    return data;
  }
}
Program: 108997
Project: 108997
Buggy source:
public ARXAnonymizer createAnonymizer(){
  outputConfig=inputConfig.clone();
  this.anonymizer=new ARXAnonymizer();
  this.anonymizer.setHistorySize(getHistorySize());
  this.anonymizer.setMaximumSnapshotSizeDataset(getSnapshotSizeDataset());
  this.anonymizer.setSuppressionString(getSuppressionString());
  this.anonymizer.setMaximumSnapshotSizeSnapshot(getSnapshotSizeSnapshot());
  this.anonymizer.setRemoveOutliers(inputConfig.isRemoveOutliers());
  return anonymizer;
}

Fixed version (ground truth):
public ARXAnonymizer createAnonymizer(){
  outputConfig=inputConfig.clone();
  this.anonymizer=new ARXAnonymizer();
  this.anonymizer.setHistorySize(getHistorySize());
  this.anonymizer.setMaximumSnapshotSizeDataset(getSnapshotSizeDataset());
  this.anonymizer.setSuppressionString(getSuppressionString());
  this.anonymizer.setMaximumSnapshotSizeSnapshot(getSnapshotSizeSnapshot());
  this.anonymizer.setRemoveOutliers(inputConfig.isRemoveOutliers());
  inputConfig.removeAllCriteria();
  if (this.kAnonymityModel != null && this.kAnonymityModel.isActive() && this.kAnonymityModel.isEnabled()) {
    inputConfig.addCriterion(this.kAnonymityModel.getCriterion(this));
  }
  if (this.dPresenceModel != null && this.dPresenceModel.isActive() && this.dPresenceModel.isEnabled()) {
    inputConfig.addCriterion(this.dPresenceModel.getCriterion(this));
  }
  for (  Entry<String,ModelLDiversityCriterion> entry : this.lDiversityModel.entrySet()) {
    if (entry.getValue() != null && entry.getValue().isActive() && entry.getValue().isEnabled()) {
      inputConfig.addCriterion(entry.getValue().getCriterion(this));
    }
  }
  for (  Entry<String,ModelTClosenessCriterion> entry : this.tClosenessModel.entrySet()) {
    if (entry.getValue() != null && entry.getValue().isActive() && entry.getValue().isEnabled()) {
      inputConfig.addCriterion(entry.getValue().getCriterion(this));
    }
  }
  if (!inputConfig.containsCriterion(DPresence.class)) {
    DataSubset subset=DataSubset.create(getInputConfig().getInput(),getInputConfig().getResearchSubset());
    inputConfig.addCriterion(new DPresence(0d,1d,subset));
  }
  return anonymizer;
}
Program: 108998
Project: 108998
Buggy source:
@Override public ModelConfiguration clone(){
  final ModelConfiguration c=new ModelConfiguration();
  c.removeOutliers=removeOutliers;
  c.input=input.clone();
  c.config=config.clone();
  c.hierarchies=new HashMap<String,Hierarchy>(hierarchies);
  return c;
}

Fixed version (ground truth):
@Override public ModelConfiguration clone(){
  final ModelConfiguration c=new ModelConfiguration();
  c.removeOutliers=removeOutliers;
  c.input=input.clone();
  c.config=config.clone();
  c.hierarchies=new HashMap<String,Hierarchy>(hierarchies);
  c.researchSubset=researchSubset;
  return c;
}