Program: 140470
Project: 140470
Buggy source:
@Override protected void addFieldsListeners(){
  minValue.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      String min=minValue.getText();
      if (min == "String_Node_Str") {
        updateStatus(IStatus.ERROR,MSG_EMPTY);
      }
 else       if (!CheckValueUtils.isRealNumberValue(min)) {
        updateStatus(IStatus.ERROR,MSG_ONLY_REAL_NUMBER);
      }
 else {
        updateStatus(IStatus.OK,MSG_OK);
        parameter.setMinValue(Double.valueOf(min));
      }
    }
  }
);
  maxValue.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      String max=maxValue.getText();
      if (max == "String_Node_Str") {
        updateStatus(IStatus.ERROR,MSG_EMPTY);
      }
 else       if (!CheckValueUtils.isRealNumberValue(max)) {
        updateStatus(IStatus.ERROR,MSG_ONLY_REAL_NUMBER);
      }
 else {
        updateStatus(IStatus.OK,MSG_OK);
        parameter.setMaxValue(Double.valueOf(max));
      }
    }
  }
);
  numbOfBins.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      String numb=numbOfBins.getText();
      if (numb == "String_Node_Str") {
        updateStatus(IStatus.ERROR,MSG_EMPTY);
      }
 else       if (!CheckValueUtils.isNumberValue(numb)) {
        updateStatus(IStatus.ERROR,MSG_ONLY_REAL_NUMBER);
      }
 else {
        updateStatus(IStatus.OK,MSG_OK);
        parameter.setNumOfBins(Integer.parseInt(numb));
      }
    }
  }
);
  isSetRange.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      boolean flag=((Button)e.getSource()).getSelection();
      double numb=Double.parseDouble(numbOfBins.getText());
      double min=Double.parseDouble(minValue.getText());
      double max=Double.parseDouble(maxValue.getText());
      if (flag && numb > 0) {
        addSlice.setEnabled(true);
        delSlice.setEnabled(true);
        tableViewer.setInput(ViewerDataFactory.createSliceFormData(min,max,numb));
        parameter.setBinsData(tableViewer.getInput());
      }
 else {
        tableViewer.setInput("String_Node_Str");
      }
    }
  }
);
  addSlice.addSelectionListener(new SelectionAdapter(){
    @SuppressWarnings("String_Node_Str") @Override public void widgetSelected(    SelectionEvent e){
      if (tableViewer.getInput() instanceof List) {
        List<SliceEntity> inputList=(List<SliceEntity>)tableViewer.getInput();
        SliceEntity newEntity=new SliceEntity();
        inputList.add(newEntity);
        tableViewer.setInput(inputList);
      }
    }
  }
);
  delSlice.addSelectionListener(new SelectionAdapter(){
    @SuppressWarnings("String_Node_Str") @Override public void widgetSelected(    SelectionEvent e){
      boolean flag=!tableViewer.getSelection().isEmpty();
      if (flag) {
        IStructuredSelection selection=(IStructuredSelection)tableViewer.getSelection();
        SliceEntity entity=(SliceEntity)selection.getFirstElement();
        if (tableViewer.getInput() instanceof List) {
          List<SliceEntity> inputList=(List<SliceEntity>)tableViewer.getInput();
          inputList.remove(entity);
          tableViewer.setInput(inputList);
        }
      }
    }
  }
);
}

Fixed version (ground truth):
@Override protected void addFieldsListeners(){
  minValue.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      String min=minValue.getText();
      if (min == "String_Node_Str") {
        updateStatus(IStatus.ERROR,MSG_EMPTY);
      }
 else       if (!CheckValueUtils.isNumberValue(min)) {
        updateStatus(IStatus.ERROR,MSG_ONLY_NUMBER);
      }
 else {
        updateStatus(IStatus.OK,MSG_OK);
        parameter.setMinValue(Double.valueOf(min));
      }
    }
  }
);
  maxValue.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      String max=maxValue.getText();
      if (max == "String_Node_Str") {
        updateStatus(IStatus.ERROR,MSG_EMPTY);
      }
 else       if (!CheckValueUtils.isNumberValue(max)) {
        updateStatus(IStatus.ERROR,MSG_ONLY_NUMBER);
      }
 else {
        updateStatus(IStatus.OK,MSG_OK);
        parameter.setMaxValue(Double.valueOf(max));
      }
    }
  }
);
  numbOfBins.addModifyListener(new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      String numb=numbOfBins.getText();
      if (numb == "String_Node_Str") {
        updateStatus(IStatus.ERROR,MSG_EMPTY);
      }
 else       if (!CheckValueUtils.isNumberValue(numb)) {
        updateStatus(IStatus.ERROR,MSG_ONLY_NUMBER);
      }
 else {
        updateStatus(IStatus.OK,MSG_OK);
        parameter.setNumOfBins(Integer.parseInt(numb));
      }
    }
  }
);
  isSetRange.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      boolean flag=((Button)e.getSource()).getSelection();
      double numb=Double.parseDouble(numbOfBins.getText());
      double min=Double.parseDouble(minValue.getText());
      double max=Double.parseDouble(maxValue.getText());
      if (flag && numb > 0) {
        addSlice.setEnabled(true);
        delSlice.setEnabled(true);
        minValue.setEnabled(false);
        maxValue.setEnabled(false);
        numbOfBins.setEnabled(false);
        tableViewer.setInput(ViewerDataFactory.createSliceFormData(min,max,numb));
        parameter.setBinsData(tableViewer.getInput());
      }
 else {
        addSlice.setEnabled(false);
        delSlice.setEnabled(false);
        minValue.setEnabled(true);
        maxValue.setEnabled(true);
        numbOfBins.setEnabled(true);
        tableViewer.setInput("String_Node_Str");
      }
    }
  }
);
  addSlice.addSelectionListener(new SelectionAdapter(){
    @SuppressWarnings("String_Node_Str") @Override public void widgetSelected(    SelectionEvent e){
      if (tableViewer.getInput() instanceof List) {
        List<SliceEntity> inputList=(List<SliceEntity>)tableViewer.getInput();
        SliceEntity newEntity=new SliceEntity();
        inputList.add(newEntity);
        tableViewer.setInput(inputList);
      }
    }
  }
);
  delSlice.addSelectionListener(new SelectionAdapter(){
    @SuppressWarnings("String_Node_Str") @Override public void widgetSelected(    SelectionEvent e){
      boolean flag=!tableViewer.getSelection().isEmpty();
      if (flag) {
        IStructuredSelection selection=(IStructuredSelection)tableViewer.getSelection();
        SliceEntity entity=(SliceEntity)selection.getFirstElement();
        if (tableViewer.getInput() instanceof List) {
          List<SliceEntity> inputList=(List<SliceEntity>)tableViewer.getInput();
          inputList.remove(entity);
          tableViewer.setInput(inputList);
        }
      }
    }
  }
);
}