Program: 127164
Project: 127164
Buggy source:
@Override public void run(IProgressMonitor monitor) throws CoreException {
  DatabaseConnection connection=(DatabaseConnection)connectionItem.getConnection();
  EList<Package> dataPackageTemConnection=temConnection.getDataPackage();
  EList<Package> dataPackageFromOrignalConnection=connection.getDataPackage();
  if (PluginChecker.isTDQLoaded()) {
    saveMetaData();
    ITDQRepositoryService tdqRepositoryService=null;
    boolean needUpdateAnalysis=false;
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
      tdqRepositoryService=(ITDQRepositoryService)org.talend.core.GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
      needUpdateAnalysis=isNeedUpdateDQ(temConnection,connection,tdqRepositoryService);
    }
    if (tdqRepositoryService != null && needUpdateAnalysis) {
      if (!tdqRepositoryService.confirmUpdateAnalysis(connectionItem)) {
        return;
      }
    }
    generateOriginalColumnsMap(dataPackageFromOrignalConnection);
    Collection<Package> copyDataPackage=EcoreUtil.copyAll(dataPackageTemConnection);
    ConnectionHelper.addPackages(copyDataPackage,connection);
    replaceUUidsForColumnsAndTables(copyDataPackage);
    saveMetaData();
    if (tdqRepositoryService != null && needUpdateAnalysis) {
      tdqRepositoryService.updateImpactOnAnalysis(connectionItem);
    }
  }
 else {
    Collection<Package> copyDataPackage=EcoreUtil.copyAll(dataPackageTemConnection);
    ConnectionHelper.addPackages(copyDataPackage,connection);
    saveMetaData();
  }
  RepositoryUpdateManager.updateMultiSchema(connectionItem,oldMetadataTable,oldTableMap);
  closeLockStrategy();
  List<IRepositoryViewObject> list=new ArrayList<IRepositoryViewObject>();
  list.add(repositoryObject);
  CoreRuntimePlugin.getInstance().getRepositoryService().notifySQLBuilder(list);
  temConnection=null;
}

Fixed version (ground truth):
@Override public void run(IProgressMonitor monitor) throws CoreException {
  DatabaseConnection connection=(DatabaseConnection)connectionItem.getConnection();
  if (ExtractMetaDataUtils.isUseAllSynonyms()) {
    EMap<String,String> map=connection.getParameters();
    if (map.containsKey(ISUSEDINDI)) {
      map.removeKey(ISUSEDINDI);
    }
    map.put(ISUSEDINDI,"String_Node_Str");
  }
  EList<Package> dataPackageTemConnection=temConnection.getDataPackage();
  EList<Package> dataPackageFromOrignalConnection=connection.getDataPackage();
  if (PluginChecker.isTDQLoaded()) {
    saveMetaData();
    ITDQRepositoryService tdqRepositoryService=null;
    boolean needUpdateAnalysis=false;
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
      tdqRepositoryService=(ITDQRepositoryService)org.talend.core.GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
      needUpdateAnalysis=isNeedUpdateDQ(temConnection,connection,tdqRepositoryService);
    }
    if (tdqRepositoryService != null && needUpdateAnalysis) {
      if (!tdqRepositoryService.confirmUpdateAnalysis(connectionItem)) {
        return;
      }
    }
    generateOriginalColumnsMap(dataPackageFromOrignalConnection);
    Collection<Package> copyDataPackage=EcoreUtil.copyAll(dataPackageTemConnection);
    ConnectionHelper.addPackages(copyDataPackage,connection);
    replaceUUidsForColumnsAndTables(copyDataPackage);
    saveMetaData();
    if (tdqRepositoryService != null && needUpdateAnalysis) {
      tdqRepositoryService.updateImpactOnAnalysis(connectionItem);
    }
  }
 else {
    Collection<Package> copyDataPackage=EcoreUtil.copyAll(dataPackageTemConnection);
    ConnectionHelper.addPackages(copyDataPackage,connection);
    saveMetaData();
  }
  RepositoryUpdateManager.updateMultiSchema(connectionItem,oldMetadataTable,oldTableMap);
  closeLockStrategy();
  List<IRepositoryViewObject> list=new ArrayList<IRepositoryViewObject>();
  list.add(repositoryObject);
  CoreRuntimePlugin.getInstance().getRepositoryService().notifySQLBuilder(list);
  temConnection=null;
}