Program: 121225
Project: 121225
Buggy source:
private void init(boolean duringLogon){
  removeOldComponentsUserFolder();
  long startTime=System.currentTimeMillis();
  componentList=new HashSet<IComponent>();
  customComponentList=new HashSet<IComponent>();
  skeletonList=new ArrayList<String>();
  userComponentList=new HashSet<IComponent>();
  String installLocation=new Path(Platform.getConfigurationLocation().getURL().getPath()).toFile().getAbsolutePath();
  componentToProviderMap=new HashMap<IComponent,AbstractComponentsProvider>();
  boolean isNeedClean=!cleanDone && TalendCacheUtils.isSetCleanComponentCache();
  cleanDone=true;
  isCreated=hasComponentFile(installLocation) && !isNeedClean;
  ComponentsCache cache=ComponentManager.getComponentCache();
  try {
    if (isCreated) {
      if (cache.getComponentEntryMap().isEmpty()) {
        ComponentsCache loadCache=loadComponentResource(installLocation);
        cache.getComponentEntryMap().putAll(loadCache.getComponentEntryMap());
      }
    }
 else {
      cache.getComponentEntryMap().clear();
    }
  }
 catch (  IOException e) {
    ExceptionHandler.process(e);
    cache.getComponentEntryMap().clear();
    isCreated=false;
  }
  loadComponentsFromComponentsProviderExtension();
  loadComponentsFromExtensions();
  ComponentManager.saveResource();
  log.debug(componentList.size() + "String_Node_Str" + (System.currentTimeMillis() - startTime)+ "String_Node_Str");
  if (!CommonUIPlugin.isFullyHeadless()) {
    ComponentsFactoryProvider.saveComponentVisibilityStatus();
  }
}

Fixed version (ground truth):
private void init(boolean duringLogon){
  removeOldComponentsUserFolder();
  long startTime=System.currentTimeMillis();
  componentList=new HashSet<IComponent>();
  customComponentList=new HashSet<IComponent>();
  skeletonList=new ArrayList<String>();
  userComponentList=new HashSet<IComponent>();
  String installLocation=new Path(Platform.getConfigurationLocation().getURL().getPath()).toFile().getAbsolutePath();
  componentToProviderMap=new HashMap<IComponent,AbstractComponentsProvider>();
  boolean isNeedClean=!cleanDone && TalendCacheUtils.isSetCleanComponentCache();
  cleanDone=true;
  isCreated=hasComponentFile(installLocation) && !isNeedClean;
  ComponentsCache cache=ComponentManager.getComponentCache();
  try {
    if (isCreated) {
      if (cache.getComponentEntryMap().isEmpty()) {
        ComponentsCache loadCache=loadComponentResource(installLocation);
        cache.getComponentEntryMap().putAll(loadCache.getComponentEntryMap());
      }
    }
 else {
      cache.getComponentEntryMap().clear();
    }
  }
 catch (  IOException e) {
    ExceptionHandler.process(e);
    cache.getComponentEntryMap().clear();
    isCreated=false;
  }
  loadComponentsFromComponentsProviderExtension();
  loadComponentsFromExtensions();
  ComponentManager.saveResource();
  log.debug(componentList.size() + "String_Node_Str" + (System.currentTimeMillis() - startTime)+ "String_Node_Str");
  if (!CommonUIPlugin.isFullyHeadless()) {
    RepositoryContext repositoryContext=(RepositoryContext)CorePlugin.getContext().getProperty(Context.REPOSITORY_CONTEXT_KEY);
    if (repositoryContext == null) {
      return;
    }
    Project project=repositoryContext.getProject();
    if (project == null) {
      return;
    }
    org.talend.core.model.properties.Project emfProject=project.getEmfProject();
    if (emfProject == null) {
      return;
    }
    EList list=emfProject.getComponentsSettings();
    if (list.isEmpty()) {
      ComponentsFactoryProvider.saveComponentVisibilityStatus();
    }
  }
}