Program: 123798
Project: 123798
Buggy source:
@SuppressWarnings("String_Node_Str") public List<ItemRecord> importItemRecords(final ResourcesManager manager,final List<ItemRecord> itemRecords,final IProgressMonitor monitor,final boolean overwrite,final IPath destinationPath,final String contentType){
  TimeMeasure.display=CommonsPlugin.isDebugMode();
  TimeMeasure.displaySteps=CommonsPlugin.isDebugMode();
  TimeMeasure.measureActive=CommonsPlugin.isDebugMode();
  TimeMeasure.begin("String_Node_Str");
  hasJoblets=false;
  statAndLogsSettingsReloaded=false;
  implicitSettingsReloaded=false;
  restoreFolder=new RestoreFolderUtil();
  Collections.sort(itemRecords,new Comparator<ItemRecord>(){
    public int compare(    ItemRecord o1,    ItemRecord o2){
      if (o1.getProperty().getItem() instanceof RoutineItem) {
        return -1;
      }
 else       if (o1.getProperty().getItem() instanceof ContextItem) {
        return 0;
      }
 else {
        return 1;
      }
    }
  }
);
  monitor.beginTask(Messages.getString("String_Node_Str"),itemRecords.size() * 2 + 1);
  RepositoryWorkUnit repositoryWorkUnit=new RepositoryWorkUnit("String_Node_Str"){
    @Override public void run() throws PersistenceException {
      final IProxyRepositoryFactory factory=CorePlugin.getDefault().getProxyRepositoryFactory();
      final Set<String> overwriteDeletedItems=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 || itemRecord.getState() == State.NAME_AND_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,contentType,monitor);
            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 {
        factory.saveProject(ProjectManager.getInstance().getCurrentProject());
        TimeMeasure.step("String_Node_Str","String_Node_Str");
      }
    }
  }
;
  repositoryWorkUnit.setAvoidUnloadResources(true);
  repositoryWorkUnit.setUnloadResourcesAfterRun(true);
  ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(repositoryWorkUnit);
  monitor.done();
  clearAllData();
  if (hasJoblets) {
    ComponentsFactoryProvider.getInstance().resetSpecificComponents();
  }
  TimeMeasure.end("String_Node_Str");
  TimeMeasure.display=false;
  TimeMeasure.displaySteps=false;
  TimeMeasure.measureActive=false;
  return itemRecords;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public List<ItemRecord> importItemRecords(final ResourcesManager manager,final List<ItemRecord> itemRecords,final IProgressMonitor monitor,final boolean overwrite,final IPath destinationPath,final String contentType){
  TimeMeasure.display=CommonsPlugin.isDebugMode();
  TimeMeasure.displaySteps=CommonsPlugin.isDebugMode();
  TimeMeasure.measureActive=CommonsPlugin.isDebugMode();
  TimeMeasure.begin("String_Node_Str");
  hasJoblets=false;
  statAndLogsSettingsReloaded=false;
  implicitSettingsReloaded=false;
  restoreFolder=new RestoreFolderUtil();
  Collections.sort(itemRecords,new Comparator<ItemRecord>(){
    public int compare(    ItemRecord o1,    ItemRecord o2){
      if (o1.getProperty().getItem() instanceof RoutineItem) {
        return -1;
      }
 else       if (o1.getProperty().getItem() instanceof ContextItem) {
        return 0;
      }
 else {
        return 1;
      }
    }
  }
);
  monitor.beginTask(Messages.getString("String_Node_Str"),itemRecords.size() * 2 + 1);
  RepositoryWorkUnit repositoryWorkUnit=new RepositoryWorkUnit("String_Node_Str"){
    @Override public void run() throws PersistenceException {
      final IProxyRepositoryFactory factory=CorePlugin.getDefault().getProxyRepositoryFactory();
      final Set<String> overwriteDeletedItems=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,contentType,monitor);
            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 {
        factory.saveProject(ProjectManager.getInstance().getCurrentProject());
        TimeMeasure.step("String_Node_Str","String_Node_Str");
      }
    }
  }
;
  repositoryWorkUnit.setAvoidUnloadResources(true);
  repositoryWorkUnit.setUnloadResourcesAfterRun(true);
  ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(repositoryWorkUnit);
  monitor.done();
  clearAllData();
  if (hasJoblets) {
    ComponentsFactoryProvider.getInstance().resetSpecificComponents();
  }
  TimeMeasure.end("String_Node_Str");
  TimeMeasure.display=false;
  TimeMeasure.displaySteps=false;
  TimeMeasure.measureActive=false;
  return itemRecords;
}