Program: 121828
Project: 121828
Buggy source:
@SuppressWarnings("String_Node_Str") @Override protected void createColumns(TableViewerCreator<IElementParameter> tableViewerCreator,Table table){
  TableViewerCreatorColumn column;
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setId(NAME_PROPERTY);
  column.setWidth(250);
  column.setModifiable(true);
  nameCellEditor=new DynamicComboBoxCellEditor(table,comboContent,comboboxCellEditorLabelProvider);
  column.setCellEditor(nameCellEditor);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<IElementParameter,Object>(){
    public String get(    IElementParameter bean){
      return bean.getDisplayName();
    }
    public void set(    IElementParameter bean,    Object value){
      if (value != null && value instanceof IElementParameter) {
        List<IElementParameter> tableInput=getTableViewerCreator().getInputList();
        int i=tableInput.indexOf(bean);
        tableInput.remove(i);
        bean.setContextMode(false);
        IElementParameter newBean=(IElementParameter)value;
        tableInput.add(i,newBean);
        newBean.setContextMode(true);
        List<IElementParameter> associateParams=findRadioParamInSameGroup(comboContent,newBean);
        for (        IElementParameter param : associateParams) {
          param.setContextMode(true);
          tableInput.add(param);
        }
        executeCommand(new Command(){
        }
);
        refreshComboContent(AdvancedContextTableView.this,legalParameters);
        getExtendedToolbar().updateEnabledStateOfButtons();
        getTableViewerCreator().refresh();
      }
    }
  }
);
  column.setColumnCellModifier(new ColumnCellModifier(column){
    @Override public boolean canModify(    Object bean){
      if (super.canModify(bean) && !comboContent.isEmpty()) {
        List<IElementParameter> associateParams=findRadioParamInSameGroup(getTableViewerCreator().getInputList(),(IElementParameter)bean);
        return associateParams.isEmpty();
      }
      return false;
    }
    @Override public Object getValue(    Object bean){
      refreshComboContent(AdvancedContextTableView.this,legalParameters);
      comboContent.add(0,(IElementParameter)bean);
      nameCellEditor.refresh();
      return bean;
    }
  }
);
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setId(CODE_PROPERTY);
  column.setWidth(200);
  column.setModifiable(true);
  codeCellEditor=new TextCellEditorWithProposal(tableViewerCreator.getTable(),SWT.BORDER,column);
  codeCellEditor.setContentProposalProvider(new TalendProposalProvider(node.getProcess(),node));
  column.setCellEditor(codeCellEditor);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<IElementParameter,Object>(){
    public Object get(    IElementParameter bean){
      final Object value=bean.getValue();
      return value == null ? "String_Node_Str" : String.valueOf(value);
    }
    public void set(    IElementParameter bean,    Object value){
      if (value != null && !value.equals(bean.getValue())) {
        executeCommand(new PropertyChangeCommand((Element)node,bean.getName(),value));
        getTableViewerCreator().refresh();
      }
    }
  }
);
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") @Override protected void createColumns(TableViewerCreator<IElementParameter> tableViewerCreator,Table table){
  TableViewerCreatorColumn column;
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setId(NAME_PROPERTY);
  column.setWidth(250);
  column.setModifiable(true);
  nameCellEditor=new DynamicComboBoxCellEditor(table,comboContent,comboboxCellEditorLabelProvider);
  column.setCellEditor(nameCellEditor);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<IElementParameter,Object>(){
    @Override public String get(    IElementParameter bean){
      return bean.getDisplayName();
    }
    @Override public void set(    IElementParameter bean,    Object value){
      if (value != null && value instanceof IElementParameter) {
        List<IElementParameter> tableInput=getTableViewerCreator().getInputList();
        int i=tableInput.indexOf(bean);
        tableInput.remove(i);
        bean.setContextMode(false);
        IElementParameter newBean=(IElementParameter)value;
        tableInput.add(i,newBean);
        newBean.setContextMode(true);
        List<IElementParameter> associateParams=findRadioParamInSameGroup(comboContent,newBean);
        for (        IElementParameter param : associateParams) {
          param.setContextMode(true);
          tableInput.add(param);
        }
        executeCommand(new Command(){
        }
);
        refreshComboContent(AdvancedContextTableView.this,legalParameters);
        getExtendedToolbar().updateEnabledStateOfButtons();
        getTableViewerCreator().refresh();
      }
    }
  }
);
  column.setColumnCellModifier(new ColumnCellModifier(column){
    @Override public boolean canModify(    Object bean){
      if (super.canModify(bean) && !comboContent.isEmpty()) {
        List<IElementParameter> associateParams=findRadioParamInSameGroup(getTableViewerCreator().getInputList(),(IElementParameter)bean);
        return associateParams.isEmpty();
      }
      return false;
    }
    @Override public Object getValue(    Object bean){
      refreshComboContent(AdvancedContextTableView.this,legalParameters);
      comboContent.add(0,(IElementParameter)bean);
      nameCellEditor.refresh();
      return bean;
    }
  }
);
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setId(CODE_PROPERTY);
  column.setWidth(200);
  column.setModifiable(true);
  codeCellEditor=new TextCellEditorWithProposal(tableViewerCreator.getTable(),SWT.BORDER,column);
  codeCellEditor.setContentProposalProvider(new TalendProposalProvider(node.getProcess(),node));
  column.setCellEditor(codeCellEditor);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<IElementParameter,Object>(){
    @Override public Object get(    IElementParameter bean){
      final Object value=bean.getValue();
      return value == null ? "String_Node_Str" : String.valueOf(value);
    }
    @Override public void set(    IElementParameter bean,    Object value){
      if (value != null && !value.equals(bean.getValue())) {
        executeCommand(new PropertyChangeCommand(node,bean.getName(),value));
        getTableViewerCreator().refresh();
      }
    }
  }
);
}