Program: 107941
Project: 107941
Buggy source:
/** 
 * Builds the component
 * @param parent
 * @return
 */
private Composite build(final Composite parent){
  final Composite mBase=new Composite(parent,SWT.NONE);
  mBase.setLayout(GridLayoutFactory.swtDefaults().numColumns(4).create());
  final Label mLabel=new Label(mBase,SWT.PUSH);
  mLabel.setText(Resources.getMessage("String_Node_Str"));
  GridData d2=new GridData();
  d2.heightHint=LABEL_HEIGHT;
  d2.minimumHeight=LABEL_HEIGHT;
  d2.grabExcessVerticalSpace=true;
  d2.verticalAlignment=GridData.CENTER;
  mLabel.setLayoutData(d2);
  comboMetric=new Combo(mBase,SWT.READ_ONLY);
  GridData d30=SWTUtil.createFillHorizontallyGridData();
  d30.horizontalSpan=3;
  d30.verticalAlignment=GridData.CENTER;
  d30.grabExcessVerticalSpace=true;
  comboMetric.setLayoutData(d30);
  comboMetric.setItems(LABELS);
  comboMetric.select(0);
  comboMetric.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      if (comboMetric.getSelectionIndex() != -1) {
        selectMetricAction(METRICS.get(comboMetric.getSelectionIndex()));
      }
    }
  }
);
  final Label mLabel2=new Label(mBase,SWT.PUSH);
  mLabel2.setText(Resources.getMessage("String_Node_Str"));
  GridData d22=new GridData();
  d22.heightHint=LABEL_HEIGHT;
  d22.minimumHeight=LABEL_HEIGHT;
  d22.grabExcessVerticalSpace=true;
  d22.verticalAlignment=GridData.CENTER;
  mLabel2.setLayoutData(d22);
  monotonicVariant=new Button(mBase,SWT.CHECK);
  monotonicVariant.setText(Resources.getMessage("String_Node_Str"));
  monotonicVariant.setSelection(false);
  monotonicVariant.setEnabled(false);
  monotonicVariant.setLayoutData(GridDataFactory.swtDefaults().span(3,1).grab(false,true).align(GridData.BEGINNING,GridData.CENTER).create());
  monotonicVariant.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      model.getMetricConfiguration().setMonotonic(monotonicVariant.getSelection());
    }
  }
);
  final Label mLabel4=new Label(mBase,SWT.PUSH);
  mLabel4.setText(Resources.getMessage("String_Node_Str"));
  GridData d24=new GridData();
  d24.heightHint=LABEL_HEIGHT;
  d24.minimumHeight=LABEL_HEIGHT;
  d24.grabExcessVerticalSpace=true;
  d24.verticalAlignment=GridData.CENTER;
  mLabel4.setLayoutData(d24);
  utilityBasedMicroaggregation=new Button(mBase,SWT.CHECK);
  utilityBasedMicroaggregation.setText(Resources.getMessage("String_Node_Str"));
  utilityBasedMicroaggregation.setSelection(false);
  utilityBasedMicroaggregation.setEnabled(false);
  utilityBasedMicroaggregation.setLayoutData(GridDataFactory.swtDefaults().span(3,1).grab(false,true).align(GridData.BEGINNING,GridData.CENTER).create());
  utilityBasedMicroaggregation.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      model.getInputConfig().setUseUtilityBasedMicroaggregation(utilityBasedMicroaggregation.getSelection());
    }
  }
);
  final Label mLabel3=new Label(mBase,SWT.PUSH);
  mLabel3.setText(Resources.getMessage("String_Node_Str"));
  GridData d23=new GridData();
  d23.heightHint=LABEL_HEIGHT;
  d23.minimumHeight=LABEL_HEIGHT;
  d23.grabExcessVerticalSpace=true;
  d23.verticalAlignment=GridData.CENTER;
  mLabel3.setLayoutData(d23);
  comboAggregate=new Combo(mBase,SWT.READ_ONLY);
  GridData d31=SWTUtil.createFillHorizontallyGridData();
  d31.horizontalSpan=3;
  d31.grabExcessVerticalSpace=true;
  d31.verticalAlignment=GridData.CENTER;
  comboAggregate.setLayoutData(d31);
  comboAggregate.setEnabled(false);
  comboAggregate.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      String selected=comboAggregate.getItem(comboAggregate.getSelectionIndex());
      for (      AggregateFunction function : model.getMetricDescription().getSupportedAggregateFunctions()) {
        if (function.toString().equals(selected)) {
          model.getMetricConfiguration().setAggregateFunction(function);
        }
      }
    }
  }
);
  return mBase;
}

Fixed version (ground truth):
/** 
 * Builds the component
 * @param parent
 * @return
 */
private Composite build(final Composite parent){
  final Composite mBase=new Composite(parent,SWT.NONE);
  mBase.setLayout(GridLayoutFactory.swtDefaults().numColumns(4).create());
  final Label mLabel=new Label(mBase,SWT.PUSH);
  mLabel.setText(Resources.getMessage("String_Node_Str"));
  GridData d2=new GridData();
  d2.heightHint=LABEL_HEIGHT;
  d2.minimumHeight=LABEL_HEIGHT;
  d2.grabExcessVerticalSpace=true;
  d2.verticalAlignment=GridData.CENTER;
  mLabel.setLayoutData(d2);
  comboMetric=new Combo(mBase,SWT.READ_ONLY);
  GridData d30=SWTUtil.createFillHorizontallyGridData();
  d30.horizontalSpan=3;
  d30.verticalAlignment=GridData.CENTER;
  d30.grabExcessVerticalSpace=true;
  comboMetric.setLayoutData(d30);
  comboMetric.setItems(LABELS);
  comboMetric.select(0);
  comboMetric.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      if (comboMetric.getSelectionIndex() != -1) {
        MetricDescription metric=METRICS.get(comboMetric.getSelectionIndex());
        if (metric != null && model != null) {
          model.setMetricDescription(metric);
          controller.update(new ModelEvent(this,ModelPart.METRIC,model.getMetricDescription()));
          updateControls();
        }
      }
    }
  }
);
  final Label mLabel2=new Label(mBase,SWT.PUSH);
  mLabel2.setText(Resources.getMessage("String_Node_Str"));
  GridData d22=new GridData();
  d22.heightHint=LABEL_HEIGHT;
  d22.minimumHeight=LABEL_HEIGHT;
  d22.grabExcessVerticalSpace=true;
  d22.verticalAlignment=GridData.CENTER;
  mLabel2.setLayoutData(d22);
  monotonicVariant=new Button(mBase,SWT.CHECK);
  monotonicVariant.setText(Resources.getMessage("String_Node_Str"));
  monotonicVariant.setSelection(false);
  monotonicVariant.setEnabled(false);
  monotonicVariant.setLayoutData(GridDataFactory.swtDefaults().span(3,1).grab(false,true).align(GridData.BEGINNING,GridData.CENTER).create());
  monotonicVariant.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      model.getMetricConfiguration().setMonotonic(monotonicVariant.getSelection());
      controller.update(new ModelEvent(this,ModelPart.METRIC,model.getMetricDescription()));
    }
  }
);
  final Label mLabel4=new Label(mBase,SWT.PUSH);
  mLabel4.setText(Resources.getMessage("String_Node_Str"));
  GridData d24=new GridData();
  d24.heightHint=LABEL_HEIGHT;
  d24.minimumHeight=LABEL_HEIGHT;
  d24.grabExcessVerticalSpace=true;
  d24.verticalAlignment=GridData.CENTER;
  mLabel4.setLayoutData(d24);
  utilityBasedMicroaggregation=new Button(mBase,SWT.CHECK);
  utilityBasedMicroaggregation.setText(Resources.getMessage("String_Node_Str"));
  utilityBasedMicroaggregation.setSelection(false);
  utilityBasedMicroaggregation.setEnabled(false);
  utilityBasedMicroaggregation.setLayoutData(GridDataFactory.swtDefaults().span(3,1).grab(false,true).align(GridData.BEGINNING,GridData.CENTER).create());
  utilityBasedMicroaggregation.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      model.getInputConfig().setUseUtilityBasedMicroaggregation(utilityBasedMicroaggregation.getSelection());
      controller.update(new ModelEvent(this,ModelPart.METRIC,model.getMetricDescription()));
    }
  }
);
  final Label mLabel3=new Label(mBase,SWT.PUSH);
  mLabel3.setText(Resources.getMessage("String_Node_Str"));
  GridData d23=new GridData();
  d23.heightHint=LABEL_HEIGHT;
  d23.minimumHeight=LABEL_HEIGHT;
  d23.grabExcessVerticalSpace=true;
  d23.verticalAlignment=GridData.CENTER;
  mLabel3.setLayoutData(d23);
  comboAggregate=new Combo(mBase,SWT.READ_ONLY);
  GridData d31=SWTUtil.createFillHorizontallyGridData();
  d31.horizontalSpan=3;
  d31.grabExcessVerticalSpace=true;
  d31.verticalAlignment=GridData.CENTER;
  comboAggregate.setLayoutData(d31);
  comboAggregate.setEnabled(false);
  comboAggregate.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    final SelectionEvent arg0){
      String selected=comboAggregate.getItem(comboAggregate.getSelectionIndex());
      for (      AggregateFunction function : model.getMetricDescription().getSupportedAggregateFunctions()) {
        if (function.toString().equals(selected)) {
          model.getMetricConfiguration().setAggregateFunction(function);
          controller.update(new ModelEvent(this,ModelPart.METRIC,model.getMetricDescription()));
        }
      }
    }
  }
);
  return mBase;
}