Program: 120845
Project: 120845
Buggy source:
public void run(IProgressMonitor monitor) throws CoreException {
  final IProxyRepositoryFactory factory=CorePlugin.getDefault().getProxyRepositoryFactory();
  final Set<String> overwriteDeletedItems=new HashSet<String>();
  final Set<String> idDeletedBeforeImport=new HashSet<String>();
  Map<String,String> nameToIdMap=new HashMap<String,String>();
  for (  ItemRecord itemRecord : itemRecords) {
    if (!monitor.isCanceled()) {
      if (itemRecord.isValid()) {
        if (itemRecord.getState() == State.ID_EXISTED) {
          String id=nameToIdMap.get(itemRecord.getProperty().getLabel() + ERepositoryObjectType.getItemType(itemRecord.getProperty().getItem()).toString());
          if (id == null) {
            id=EcoreUtil.generateUUID();
            nameToIdMap.put(itemRecord.getProperty().getLabel() + ERepositoryObjectType.getItemType(itemRecord.getProperty().getItem()).toString(),id);
          }
          itemRecord.getProperty().setId(id);
        }
      }
    }
  }
  for (  ItemRecord itemRecord : itemRecords) {
    if (!monitor.isCanceled()) {
      if (itemRecord.isValid()) {
        importItemRecord(manager,itemRecord,overwrite,destinationPath,overwriteDeletedItems,idDeletedBeforeImport,contentType,monitor);
        IRepositoryViewObject object;
        try {
          Property property=itemRecord.getProperty();
          if (property == null) {
            object=factory.getSpecificVersion(itemRecord.getItemId(),itemRecord.getItemVersion(),true);
            property=object.getProperty();
          }
          RelationshipItemBuilder.getInstance().addOrUpdateItem(property.getItem(),true);
          itemRecord.setProperty(null);
          ProxyRepositoryFactory.getInstance().unloadResources(property);
        }
 catch (        PersistenceException e) {
          ExceptionHandler.process(e);
        }
        statAndLogsSettingsReloaded=false;
        implicitSettingsReloaded=false;
        monitor.worked(1);
      }
    }
  }
  if (!getRoutineExtModulesMap().isEmpty()) {
    Set<String> extRoutines=new HashSet<String>();
    for (    String id : getRoutineExtModulesMap().keySet()) {
      Set<String> set=getRoutineExtModulesMap().get(id);
      if (set != null) {
        extRoutines.addAll(set);
      }
    }
    if (manager instanceof ProviderManager || manager instanceof ZipFileManager) {
      deployJarToDesForArchive(manager,extRoutines);
    }
 else {
      deployJarToDes(manager,extRoutines);
    }
  }
  if (PluginChecker.isJobLetPluginLoaded()) {
    IJobletProviderService service=(IJobletProviderService)GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
    if (service != null) {
      service.loadComponentsFromProviders();
    }
  }
  checkDeletedFolders();
  monitor.done();
  TimeMeasure.step("String_Node_Str","String_Node_Str");
  if (RelationshipItemBuilder.getInstance().isNeedSaveRelations()) {
    RelationshipItemBuilder.getInstance().saveRelations();
    TimeMeasure.step("String_Node_Str","String_Node_Str");
  }
 else {
    try {
      factory.saveProject(ProjectManager.getInstance().getCurrentProject());
    }
 catch (    PersistenceException e) {
      throw new CoreException(new Status(IStatus.ERROR,FrameworkUtil.getBundle(this.getClass()).getSymbolicName(),"String_Node_Str",e));
    }
    TimeMeasure.step("String_Node_Str","String_Node_Str");
  }
}

Fixed version (ground truth):
@Override public void run(IProgressMonitor monitor) throws CoreException {
  final IProxyRepositoryFactory factory=CorePlugin.getDefault().getProxyRepositoryFactory();
  final Set<String> overwriteDeletedItems=new HashSet<String>();
  final Set<String> idDeletedBeforeImport=new HashSet<String>();
  Map<String,String> nameToIdMap=new HashMap<String,String>();
  for (  ItemRecord itemRecord : itemRecords) {
    if (!monitor.isCanceled()) {
      if (itemRecord.isValid()) {
        if (itemRecord.getState() == State.ID_EXISTED) {
          String id=nameToIdMap.get(itemRecord.getProperty().getLabel() + ERepositoryObjectType.getItemType(itemRecord.getProperty().getItem()).toString());
          if (id == null) {
            id=EcoreUtil.generateUUID();
            nameToIdMap.put(itemRecord.getProperty().getLabel() + ERepositoryObjectType.getItemType(itemRecord.getProperty().getItem()).toString(),id);
          }
          itemRecord.getProperty().setId(id);
        }
      }
    }
  }
  for (  ItemRecord itemRecord : itemRecords) {
    if (!monitor.isCanceled()) {
      if (itemRecord.isValid()) {
        importItemRecord(manager,itemRecord,overwrite,destinationPath,overwriteDeletedItems,idDeletedBeforeImport,contentType,monitor);
        IRepositoryViewObject object;
        try {
          Property property=itemRecord.getProperty();
          if (property == null) {
            object=factory.getSpecificVersion(itemRecord.getItemId(),itemRecord.getItemVersion(),true);
            property=object.getProperty();
          }
          RelationshipItemBuilder.getInstance().addOrUpdateItem(property.getItem(),true);
          itemRecord.setProperty(null);
          ProxyRepositoryFactory.getInstance().unloadResources(property);
        }
 catch (        PersistenceException e) {
          ExceptionHandler.process(e);
        }
        statAndLogsSettingsReloaded=false;
        implicitSettingsReloaded=false;
        monitor.worked(1);
      }
    }
  }
  if (!getRoutineExtModulesMap().isEmpty()) {
    Set<String> extRoutines=new HashSet<String>();
    for (    String id : getRoutineExtModulesMap().keySet()) {
      Set<String> set=getRoutineExtModulesMap().get(id);
      if (set != null) {
        extRoutines.addAll(set);
      }
    }
    if (manager instanceof ProviderManager || manager instanceof ZipFileManager) {
      deployJarToDesForArchive(manager,extRoutines);
    }
 else {
      deployJarToDes(manager,extRoutines);
    }
  }
  if (PluginChecker.isJobLetPluginLoaded()) {
    IJobletProviderService service=(IJobletProviderService)GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
    if (service != null) {
      service.loadComponentsFromProviders();
    }
  }
  checkDeletedFolders();
  monitor.done();
  TimeMeasure.step("String_Node_Str","String_Node_Str");
  if (RelationshipItemBuilder.getInstance().isNeedSaveRelations()) {
    RelationshipItemBuilder.getInstance().saveRelations();
    TimeMeasure.step("String_Node_Str","String_Node_Str");
  }
 else {
    try {
      factory.saveProject(ProjectManager.getInstance().getCurrentProject());
    }
 catch (    PersistenceException e) {
      throw new CoreException(new Status(IStatus.ERROR,FrameworkUtil.getBundle(this.getClass()).getSymbolicName(),"String_Node_Str",e));
    }
    TimeMeasure.step("String_Node_Str","String_Node_Str");
  }
}