Program: 120474
Project: 120474
Buggy source:
public void createGlobalMapColumns(final TableViewerCreator<GlobalMapEntry> tableViewerCreatorForGlobalMap){
  TableViewerCreatorColumn<GlobalMapEntry,String> column=new TableViewerCreatorColumn<GlobalMapEntry,String>(tableViewerCreatorForGlobalMap);
  column.setTitle("String_Node_Str");
  column.setId(DataMapTableView.ID_EXPRESSION_COLUMN);
  final ExtendedTextCellEditor expressionCellEditor=createExpressionCellEditor(tableViewerCreatorForGlobalMap,column,new Zone[]{Zone.INPUTS},false);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<GlobalMapEntry,String>(){
    public String get(    GlobalMapEntry bean){
      return bean.getExpression();
    }
    public void set(    GlobalMapEntry bean,    String value){
      bean.setExpression(value);
      mapperManager.getProblemsManager().checkProblemsForTableEntry(bean,true);
    }
  }
);
  column.setModifiable(true);
  column.setDefaultInternalValue("String_Node_Str");
  column.setWeight(COLUMN_EXPRESSION_SIZE_WEIGHT);
  column.setMoveable(false);
  column.setResizable(true);
  column=new TableViewerCreatorColumn<GlobalMapEntry,String>(tableViewerCreatorForGlobalMap);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setId(DataMapTableView.ID_NAME_COLUMN);
  column.setModifiable(true);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<GlobalMapEntry,String>(){
    public String get(    GlobalMapEntry bean){
      return bean.getName();
    }
    public void set(    GlobalMapEntry bean,    String value){
      bean.setName(value);
    }
  }
);
  column.setWeight(COLUMN_NAME_SIZE_WEIGHT);
  final TextCellEditor cellEditor=new TextCellEditor(tableViewerCreatorForGlobalMap.getTable());
  column.setCellEditor(cellEditor);
  column=new TableViewerCreatorColumn(tableViewerCreatorForGlobalMap);
  column.setTitle("String_Node_Str");
  column.setDefaultDisplayedValue("String_Node_Str");
  column.setToolTipHeader(Messages.getString("String_Node_Str"));
  column.setWidth(25);
  column.setMoveable(false);
  column.setResizable(true);
  column.setImageHeader(org.talend.commons.ui.runtime.image.ImageProvider.getImage(org.talend.commons.ui.runtime.image.ImageProvider.getImageDesc(EImage.ADD_ICON)));
  column.setTableColumnSelectionListener(new DefaultHeaderColumnSelectionListener(column,tableViewerCreatorForGlobalMap){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (!mapperManager.componentIsReadOnly()) {
        getInputTable().addGlobalMapEntry(new GlobalMapEntry(getInputTable(),"String_Node_Str","String_Node_Str"));
        updateGridDataHeightForTableGlobalMap();
        resizeAtExpandedSize();
      }
    }
  }
);
  ButtonPushImageTableEditorContent buttonImage=new ButtonPushImageTableEditorContent(){
    @Override protected void selectionEvent(    TableViewerCreatorColumnNotModifiable column,    Object bean){
      ITableEntry tableEntry=(ITableEntry)bean;
      if (!mapperManager.componentIsReadOnly()) {
        boolean removeEntry=MessageDialog.openConfirm(getShell(),Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str",tableEntry.getName()));
        if (removeEntry) {
          ExtendedTableRemoveCommand removeCommand=new ExtendedTableRemoveCommand(bean,extendedTableViewerForGlobalMap.getExtendedTableModel());
          mapperManager.removeTableEntry((ITableEntry)bean);
          mapperManager.executeCommand(removeCommand);
          tableViewerCreatorForGlobalMap.getTableViewer().refresh();
          List list=tableViewerCreatorForGlobalMap.getInputList();
          updateGridDataHeightForTableGlobalMap();
          resizeAtExpandedSize();
        }
      }
    }
  }
;
  buttonImage.setImage(ImageProvider.getImage(EImage.MINUS_ICON));
  column.setTableEditorContent(buttonImage);
}

Fixed version (ground truth):
public void createGlobalMapColumns(final TableViewerCreator<GlobalMapEntry> tableViewerCreatorForGlobalMap){
  TableViewerCreatorColumn<GlobalMapEntry,String> column=new TableViewerCreatorColumn<GlobalMapEntry,String>(tableViewerCreatorForGlobalMap);
  column.setTitle("String_Node_Str");
  column.setId(DataMapTableView.ID_EXPRESSION_COLUMN);
  final ExtendedTextCellEditor expressionCellEditor=createExpressionCellEditor(tableViewerCreatorForGlobalMap,column,new Zone[]{Zone.INPUTS},false);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<GlobalMapEntry,String>(){
    public String get(    GlobalMapEntry bean){
      return bean.getExpression();
    }
    public void set(    GlobalMapEntry bean,    String value){
      bean.setExpression(value);
      mapperManager.getProblemsManager().checkProblemsForTableEntry(bean,true);
    }
  }
);
  column.setModifiable(true);
  column.setDefaultInternalValue("String_Node_Str");
  column.setWeight(COLUMN_EXPRESSION_SIZE_WEIGHT);
  column.setMoveable(false);
  column.setResizable(true);
  column=new TableViewerCreatorColumn<GlobalMapEntry,String>(tableViewerCreatorForGlobalMap);
  column.setTitle(Messages.getString("String_Node_Str"));
  column.setId(DataMapTableView.ID_NAME_COLUMN);
  column.setModifiable(true);
  column.setBeanPropertyAccessors(new IBeanPropertyAccessors<GlobalMapEntry,String>(){
    public String get(    GlobalMapEntry bean){
      return bean.getName();
    }
    public void set(    GlobalMapEntry bean,    String value){
      bean.setName(value);
    }
  }
);
  column.setWeight(COLUMN_NAME_SIZE_WEIGHT);
  final TextCellEditor cellEditor=new TextCellEditor(tableViewerCreatorForGlobalMap.getTable());
  column.setCellEditor(cellEditor);
  column=new TableViewerCreatorColumn(tableViewerCreatorForGlobalMap);
  column.setTitle("String_Node_Str");
  column.setDefaultDisplayedValue("String_Node_Str");
  column.setToolTipHeader(Messages.getString("String_Node_Str"));
  column.setWeight(10);
  column.setWidth(25);
  column.setMoveable(false);
  column.setResizable(true);
  column.setImageHeader(org.talend.commons.ui.runtime.image.ImageProvider.getImage(org.talend.commons.ui.runtime.image.ImageProvider.getImageDesc(EImage.ADD_ICON)));
  column.setTableColumnSelectionListener(new DefaultHeaderColumnSelectionListener(column,tableViewerCreatorForGlobalMap){
    @Override public void widgetSelected(    SelectionEvent arg0){
      if (!mapperManager.componentIsReadOnly()) {
        getInputTable().addGlobalMapEntry(new GlobalMapEntry(getInputTable(),"String_Node_Str","String_Node_Str"));
        updateGridDataHeightForTableGlobalMap();
        resizeAtExpandedSize();
      }
    }
  }
);
  ButtonPushImageTableEditorContent buttonImage=new ButtonPushImageTableEditorContent(){
    @Override protected void selectionEvent(    TableViewerCreatorColumnNotModifiable column,    Object bean){
      ITableEntry tableEntry=(ITableEntry)bean;
      if (!mapperManager.componentIsReadOnly()) {
        boolean removeEntry=MessageDialog.openConfirm(getShell(),Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str",tableEntry.getName()));
        if (removeEntry) {
          ExtendedTableRemoveCommand removeCommand=new ExtendedTableRemoveCommand(bean,extendedTableViewerForGlobalMap.getExtendedTableModel());
          mapperManager.removeTableEntry((ITableEntry)bean);
          mapperManager.executeCommand(removeCommand);
          tableViewerCreatorForGlobalMap.getTableViewer().refresh();
          List list=tableViewerCreatorForGlobalMap.getInputList();
          updateGridDataHeightForTableGlobalMap();
          resizeAtExpandedSize();
        }
      }
    }
  }
;
  buttonImage.setImage(ImageProvider.getImage(EImage.MINUS_ICON));
  column.setTableEditorContent(buttonImage);
}