Program: 121751
Project: 121751
Buggy source:
/** 
 * DOC guanglong.du Comment method "reloadComponentsFromCache".
 * @throws BusinessException
 */
private void reloadComponentsFromCache() throws BusinessException {
  Map<String,String> bundleIdToPath=new HashMap<String,String>();
  ComponentsCache cache=ComponentManager.getInstance();
  Iterator it=cache.getComponentEntryMap().entrySet().iterator();
  while (it.hasNext()) {
    Map.Entry<String,ComponentInfo> entry=(Map.Entry<String,ComponentInfo>)it.next();
    ComponentInfo info=entry.getValue();
    String name=entry.getKey();
    if (!isComponentVisible(name)) {
      continue;
    }
    IBrandingService service=(IBrandingService)GlobalServiceRegister.getDefault().getService(IBrandingService.class);
    String[] availableComponents=service.getBrandingConfiguration().getAvailableComponents();
    EmfComponent currentComp=new EmfComponent(info.getUriString(),info.getSourceBundleName(),name,info.getPathSource(),cache,true);
    if (availableComponents != null && !ArrayUtils.contains(availableComponents,currentComp.getName()) && !(ArrayUtils.contains(COMPONENTS_ALWAYS_NEEDED,currentComp.getName()) || currentComp.getOriginalFamilyName().contains("String_Node_Str") || currentComp.isTechnical())) {
      continue;
    }
    if (availableComponents != null && !ArrayUtils.contains(availableComponents,currentComp.getName()) && (ArrayUtils.contains(COMPONENTS_ALWAYS_NEEDED,currentComp.getName()) || currentComp.getOriginalFamilyName().contains("String_Node_Str") || currentComp.isTechnical())) {
      currentComp.setVisible(false);
      currentComp.setTechnical(true);
    }
    currentComp.setPaletteType(currentComp.getType());
    String applicationPath=bundleIdToPath.get(info.getSourceBundleName());
    if (applicationPath == null) {
      try {
        applicationPath=FileLocator.getBundleFile(Platform.getBundle(info.getSourceBundleName())).getPath();
        applicationPath=(new Path(applicationPath)).toPortableString();
      }
 catch (      IOException e2) {
        ExceptionHandler.process(e2);
        return;
      }
      bundleIdToPath.put(info.getSourceBundleName(),applicationPath);
    }
    if (!componentList.contains(currentComp)) {
      currentComp.setResourceBundle(getComponentResourceBundle(currentComp,applicationPath + info.getUriString(),info.getPathSource(),null));
      File currentFile=new File(applicationPath + info.getUriString());
      loadIcons(currentFile.getParentFile(),currentComp);
      componentList.add(currentComp);
    }
  }
}

Fixed version (ground truth):
/** 
 * DOC guanglong.du Comment method "reloadComponentsFromCache".
 * @throws BusinessException
 */
private void reloadComponentsFromCache() throws BusinessException {
  Map<String,String> bundleIdToPath=new HashMap<String,String>();
  ComponentsCache cache=ComponentManager.getInstance();
  Iterator it=cache.getComponentEntryMap().entrySet().iterator();
  while (it.hasNext()) {
    Map.Entry<String,EList<ComponentInfo>> entry=(Map.Entry<String,EList<ComponentInfo>>)it.next();
    EList<ComponentInfo> infoList=entry.getValue();
    String name=entry.getKey();
    if (!isComponentVisible(name)) {
      continue;
    }
    for (    ComponentInfo info : infoList) {
      IBrandingService service=(IBrandingService)GlobalServiceRegister.getDefault().getService(IBrandingService.class);
      String[] availableComponents=service.getBrandingConfiguration().getAvailableComponents();
      EmfComponent currentComp=new EmfComponent(info.getUriString(),info.getSourceBundleName(),name,info.getPathSource(),cache,true);
      if (availableComponents != null && !ArrayUtils.contains(availableComponents,currentComp.getName()) && !(ArrayUtils.contains(COMPONENTS_ALWAYS_NEEDED,currentComp.getName()) || currentComp.getOriginalFamilyName().contains("String_Node_Str") || currentComp.isTechnical())) {
        continue;
      }
      if (availableComponents != null && !ArrayUtils.contains(availableComponents,currentComp.getName()) && (ArrayUtils.contains(COMPONENTS_ALWAYS_NEEDED,currentComp.getName()) || currentComp.getOriginalFamilyName().contains("String_Node_Str") || currentComp.isTechnical())) {
        currentComp.setVisible(false);
        currentComp.setTechnical(true);
      }
      currentComp.setPaletteType(currentComp.getType());
      String applicationPath=bundleIdToPath.get(info.getSourceBundleName());
      if (applicationPath == null) {
        try {
          applicationPath=FileLocator.getBundleFile(Platform.getBundle(info.getSourceBundleName())).getPath();
          applicationPath=(new Path(applicationPath)).toPortableString();
        }
 catch (        IOException e2) {
          ExceptionHandler.process(e2);
          return;
        }
        bundleIdToPath.put(info.getSourceBundleName(),applicationPath);
      }
      if (!componentList.contains(currentComp)) {
        currentComp.setResourceBundle(getComponentResourceBundle(currentComp,applicationPath + info.getUriString(),info.getPathSource(),null));
        File currentFile=new File(applicationPath + info.getUriString());
        loadIcons(currentFile.getParentFile(),currentComp);
        componentList.add(currentComp);
      }
    }
  }
}