Program: 120413
Project: 120413
Buggy source:
@Override protected void createColumns(TableViewerCreator<Parameter> tableViewerCreator,final Table table){
  this.tableViewerCreator=tableViewerCreator;
  IService expressionBuilderDialogService=GlobalServiceRegister.getDefault().getService(IExpressionBuilderDialogService.class);
  TableViewerCreatorColumn column;
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Parameter,Object>(){
    public String get(    Parameter bean){
      return bean.getName();
    }
    public void set(    Parameter bean,    Object value){
    }
  }
);
  column.setModifiable(false);
  column.setWidth(115);
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setId(VALUE_PROPERTY);
  CellEditorDialogBehavior behavior=new CellEditorDialogBehavior();
  cellEditor=new ExtendedTextCellEditorWithProposal(tableViewerCreator.getTable(),SWT.MULTI | SWT.BORDER,column,behavior);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Parameter,Object>(){
    public String get(    Parameter bean){
      StringBuffer id=new StringBuffer();
      id.append(component.getLabel() + "String_Node_Str");
      TableItem[] item=rowGenTableEditor2.getTable().getSelection();
      if (item.length == 1) {
        id.append(((MetadataColumnExt)item[0].getData()).getLabel() + "String_Node_Str");
      }
      cellEditor.setOwnerId(id.append(bean.getName()).toString());
      cellEditor.setExpressionType(bean.getType());
      return bean.getValue();
    }
    public void set(    Parameter bean,    Object value){
      if (value == null) {
        return;
      }
      bean.setValue(value.toString());
      if (ext != null) {
        ext.setChanged(true);
      }
      if (!rowGenTableEditor2.getTableViewerCreator().getTableViewer().isCellEditorActive()) {
        rowGenTableEditor2.getTableViewerCreator().getTableViewer().refresh();
      }
    }
  }
);
  column.setModifiable(true);
  column.setWidth(115);
  dialog=((IExpressionBuilderDialogService)expressionBuilderDialogService).getExpressionBuilderInstance(mainComposite,cellEditor,component);
  behavior.setCellEditorDialog(dialog);
  cellEditor.setContentProposalProvider(getProcessProposals());
  cellEditor.setExpressionType("String_Node_Str");
  column.setCellEditor(cellEditor);
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Parameter,Object>(){
    public String get(    Parameter bean){
      return bean.getComment();
    }
    public void set(    Parameter bean,    Object value){
    }
  }
);
  column.setModifiable(false);
  column.setWidth(155);
}

Fixed version (ground truth):
@Override protected void createColumns(TableViewerCreator<Parameter> tableViewerCreator,final Table table){
  this.tableViewerCreator=tableViewerCreator;
  IService expressionBuilderDialogService=GlobalServiceRegister.getDefault().getService(IExpressionBuilderDialogService.class);
  TableViewerCreatorColumn column;
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Parameter,Object>(){
    public String get(    Parameter bean){
      return bean.getName();
    }
    public void set(    Parameter bean,    Object value){
    }
  }
);
  column.setModifiable(false);
  column.setWidth(115);
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setId(VALUE_PROPERTY);
  CellEditorDialogBehavior behavior=new CellEditorDialogBehavior();
  cellEditor=new ExtendedTextCellEditorWithProposal(tableViewerCreator.getTable(),SWT.MULTI | SWT.BORDER,column,behavior);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Parameter,Object>(){
    public String get(    Parameter bean){
      StringBuffer id=new StringBuffer();
      id.append(component.getLabel() + "String_Node_Str");
      TableItem[] item=rowGenTableEditor2.getTable().getSelection();
      if (item.length == 1) {
        id.append(((MetadataColumnExt)item[0].getData()).getLabel() + "String_Node_Str");
      }
      cellEditor.setOwnerId(id.append(bean.getName()).toString());
      cellEditor.setExpressionType(bean.getType());
      String valueTemp=bean.getValue();
      if (valueTemp != null && !valueTemp.endsWith("String_Node_Str")) {
        bean.setValue(valueTemp + "String_Node_Str");
      }
      return bean.getValue();
    }
    public void set(    Parameter bean,    Object value){
      if (value == null) {
        return;
      }
      String valueTemp=value.toString();
      if (!valueTemp.endsWith("String_Node_Str")) {
        value=value + "String_Node_Str";
      }
      bean.setValue(value.toString());
      if (ext != null) {
        ext.setChanged(true);
      }
      if (!rowGenTableEditor2.getTableViewerCreator().getTableViewer().isCellEditorActive()) {
        rowGenTableEditor2.getTableViewerCreator().getTableViewer().refresh();
      }
    }
  }
);
  column.setModifiable(true);
  column.setWidth(115);
  dialog=((IExpressionBuilderDialogService)expressionBuilderDialogService).getExpressionBuilderInstance(mainComposite,cellEditor,component);
  behavior.setCellEditorDialog(dialog);
  cellEditor.setContentProposalProvider(getProcessProposals());
  cellEditor.setExpressionType("String_Node_Str");
  column.setCellEditor(cellEditor);
  column=new TableViewerCreatorColumn(tableViewerCreator);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<Parameter,Object>(){
    public String get(    Parameter bean){
      return bean.getComment();
    }
    public void set(    Parameter bean,    Object value){
    }
  }
);
  column.setModifiable(false);
  column.setWidth(155);
}