Program: 125849
Project: 125849
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();
  ITDQRepositoryService tdqRepositoryService=null;
  boolean needUpdateAnalysis=false;
  if (PluginChecker.isTDQLoaded()) {
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
      tdqRepositoryService=(ITDQRepositoryService)org.talend.core.GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
      needUpdateAnalysis=isNeedUpdateDQ(connection,oldCopiedConnection,tdqRepositoryService);
    }
    if (tdqRepositoryService != null && needUpdateAnalysis) {
      if (!tdqRepositoryService.confirmUpdateAnalysis(connectionItem)) {
        return;
      }
    }
  }
  saveMetaData();
  if (tdqRepositoryService != null && needUpdateAnalysis) {
    tdqRepositoryService.updateImpactOnAnalysis(connectionItem);
  }
  RepositoryUpdateManager.updateMultiSchema(connectionItem,oldMetadataTable,oldTableMap);
  closeLockStrategy();
  List<IRepositoryViewObject> list=new ArrayList<IRepositoryViewObject>();
  list.add(repositoryObject);
  CoreRuntimePlugin.getInstance().getRepositoryService().notifySQLBuilder(list);
  oldCopiedConnection=null;
}