Program: 123940
Project: 123940
Buggy source:
public void addRejectOutput(){
  String baseName=ERROR_REJECT;
  IProcess process=getAbstractMapComponent().getProcess();
  String tableName=baseName;
  if (!process.checkValidConnectionName(baseName) && process instanceof IProcess2) {
    final String uniqueName=((IProcess2)process).generateUniqueConnectionName("String_Node_Str",baseName);
    tableName=uniqueName;
    ((IProcess2)process).addUniqueConnectionName(uniqueName);
  }
 else   if (process instanceof IProcess2) {
    tableName=baseName;
    ((IProcess2)process).addUniqueConnectionName(baseName);
  }
  MetadataTable metadataTable=new MetadataTable();
  metadataTable.setTableName(tableName);
  MetadataColumn errorMessageCol=new MetadataColumn();
  errorMessageCol.setLabel(ERROR_REJECT_MESSAGE);
  errorMessageCol.setTalendType(CorePlugin.getDefault().getPreferenceStore().getString(MetadataTypeLengthConstants.FIELD_DEFAULT_TYPE));
  errorMessageCol.setNullable(true);
  errorMessageCol.setOriginalDbColumnName(ERROR_REJECT_MESSAGE);
  errorMessageCol.setReadOnly(true);
  errorMessageCol.setCustom(true);
  metadataTable.getListColumns().add(errorMessageCol);
  MetadataColumn errorStackTrace=new MetadataColumn();
  errorStackTrace.setLabel(ERROR_REJECT_STACK_TRACE);
  errorStackTrace.setTalendType(CorePlugin.getDefault().getPreferenceStore().getString(MetadataTypeLengthConstants.FIELD_DEFAULT_TYPE));
  errorStackTrace.setNullable(true);
  errorStackTrace.setOriginalDbColumnName(ERROR_REJECT_STACK_TRACE);
  errorStackTrace.setReadOnly(true);
  errorStackTrace.setCustom(true);
  metadataTable.getListColumns().add(errorStackTrace);
  OutputTable abstractDataMapTable=new OutputTable(this,metadataTable,tableName);
  abstractDataMapTable.setErrorRejectTable(true);
  abstractDataMapTable.initFromExternalData(null);
  TablesZoneView tablesZoneViewOutputs=uiManager.getTablesZoneViewOutputs();
  DataMapTableView rejectDataMapTableView=uiManager.createNewOutputTableView(null,abstractDataMapTable,tablesZoneViewOutputs);
  tablesZoneViewOutputs.setSize(tablesZoneViewOutputs.computeSize(SWT.DEFAULT,SWT.DEFAULT));
  List<DataMapTableView> outputsTablesView=uiManager.getOutputsTablesView();
  int sizeList=outputsTablesView.size();
  for (int i=0; i < sizeList; i++) {
    if (i + 1 < sizeList) {
      FormData formData=(FormData)outputsTablesView.get(i + 1).getLayoutData();
      formData.top=new FormAttachment(outputsTablesView.get(i));
    }
  }
  CustomTableManager.addCustomManagementToTable(uiManager.getOutputMetaEditorView(),true);
  tablesZoneViewOutputs.setSize(tablesZoneViewOutputs.computeSize(SWT.DEFAULT,SWT.DEFAULT));
  tablesZoneViewOutputs.layout();
  uiManager.moveOutputScrollBarZoneToMax();
  uiManager.refreshBackground(true,false);
  uiManager.selectDataMapTableView(rejectDataMapTableView,true,false);
}

Fixed version (ground truth):
public void addRejectOutput(){
  String baseName=ERROR_REJECT;
  IProcess process=getAbstractMapComponent().getProcess();
  String tableName=baseName;
  if (!process.checkValidConnectionName(baseName) && process instanceof IProcess2) {
    final String uniqueName=((IProcess2)process).generateUniqueConnectionName("String_Node_Str",baseName);
    tableName=uniqueName;
    ((IProcess2)process).addUniqueConnectionName(uniqueName);
  }
 else   if (process instanceof IProcess2) {
    tableName=baseName;
    ((IProcess2)process).addUniqueConnectionName(baseName);
  }
  MetadataTable metadataTable=new MetadataTable();
  metadataTable.setTableName(tableName);
  MetadataColumn errorMessageCol=new MetadataColumn();
  errorMessageCol.setLabel(ERROR_REJECT_MESSAGE);
  errorMessageCol.setTalendType(CorePlugin.getDefault().getPreferenceStore().getString(MetadataTypeLengthConstants.FIELD_DEFAULT_TYPE));
  errorMessageCol.setNullable(true);
  errorMessageCol.setOriginalDbColumnName(ERROR_REJECT_MESSAGE);
  errorMessageCol.setReadOnly(true);
  errorMessageCol.setCustom(true);
  errorMessageCol.setCustomId(0);
  metadataTable.getListColumns().add(errorMessageCol);
  MetadataColumn errorStackTrace=new MetadataColumn();
  errorStackTrace.setLabel(ERROR_REJECT_STACK_TRACE);
  errorStackTrace.setTalendType(CorePlugin.getDefault().getPreferenceStore().getString(MetadataTypeLengthConstants.FIELD_DEFAULT_TYPE));
  errorStackTrace.setNullable(true);
  errorStackTrace.setOriginalDbColumnName(ERROR_REJECT_STACK_TRACE);
  errorStackTrace.setReadOnly(true);
  errorStackTrace.setCustom(true);
  errorStackTrace.setCustomId(1);
  metadataTable.getListColumns().add(errorStackTrace);
  OutputTable abstractDataMapTable=new OutputTable(this,metadataTable,tableName);
  abstractDataMapTable.setErrorRejectTable(true);
  abstractDataMapTable.initFromExternalData(null);
  TablesZoneView tablesZoneViewOutputs=uiManager.getTablesZoneViewOutputs();
  DataMapTableView rejectDataMapTableView=uiManager.createNewOutputTableView(null,abstractDataMapTable,tablesZoneViewOutputs);
  tablesZoneViewOutputs.setSize(tablesZoneViewOutputs.computeSize(SWT.DEFAULT,SWT.DEFAULT));
  List<DataMapTableView> outputsTablesView=uiManager.getOutputsTablesView();
  int sizeList=outputsTablesView.size();
  for (int i=0; i < sizeList; i++) {
    if (i + 1 < sizeList) {
      FormData formData=(FormData)outputsTablesView.get(i + 1).getLayoutData();
      formData.top=new FormAttachment(outputsTablesView.get(i));
    }
  }
  CustomTableManager.addCustomManagementToTable(uiManager.getOutputMetaEditorView(),true);
  tablesZoneViewOutputs.setSize(tablesZoneViewOutputs.computeSize(SWT.DEFAULT,SWT.DEFAULT));
  tablesZoneViewOutputs.layout();
  uiManager.moveOutputScrollBarZoneToMax();
  uiManager.refreshBackground(true,false);
  uiManager.selectDataMapTableView(rejectDataMapTableView,true,false);
}