Program: 123675
Project: 123675
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);
    }
    if (currentComp.getSourceBundleName().contains("String_Node_Str")) {
      currentComp.setPaletteType("String_Node_Str");
    }
 else {
      currentComp.setPaletteType("String_Node_Str");
    }
    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(),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,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);
    }
    if (currentComp.getSourceBundleName().contains("String_Node_Str")) {
      currentComp.setPaletteType("String_Node_Str");
    }
 else {
      currentComp.setPaletteType("String_Node_Str");
    }
    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);
    }
  }
}