Program: 136445
Project: 136445
Buggy source:
/** 
 * DOC talend Comment method "getWorkspaceRootChildren".
 * @param element
 * @return
 * @throws CoreException
 */
private Object[] createWorkspaceRootChildren(Object element,String projectTechnicalLabel) throws CoreException {
  Project inWhichProject=ProxyRepositoryManager.getInstance().getProjectFromProjectTechnicalLabel(projectTechnicalLabel);
  Object currentOpenProject=null;
  for (  Object child : super.getChildren(element)) {
    if (child instanceof IProject) {
      if (((IProject)child).getName().equals(projectTechnicalLabel)) {
        currentOpenProject=child;
        break;
      }
    }
  }
  List<Object> folders=new ArrayList<Object>();
  Object[] rootFolders=new Object[0];
  if (currentOpenProject != null) {
    rootFolders=((IProject)currentOpenProject).members(false);
    for (    Object folder : rootFolders) {
      IRepositoryNode node=null;
      if (folder instanceof IFolder && ((IFolder)folder).getName().startsWith(RepositoryNodeHelper.PREFIX_TDQ)) {
        IFolder iFolder=(IFolder)folder;
        if (((IFolder)folder).getName().trim().equals("String_Node_Str")) {
          continue;
        }
        IPath relativePath=iFolder.getFullPath().makeRelativeTo(((IProject)currentOpenProject).getFullPath());
        ERepositoryObjectType respositoryObjectType=RepositoryNodeBuilder.getInstance().retrieveRepObjectTypeByPath(relativePath.toOSString());
        node=createNewRepNode(respositoryObjectType,inWhichProject);
      }
      if (folder instanceof IFolder) {
        String folderName=((IFolder)folder).getName();
        if (EResourceConstant.METADATA.getName().equals(folderName)) {
          node=createNewRepNode(ERepositoryObjectType.METADATA,inWhichProject);
        }
 else         if (PluginChecker.isTDQLoaded() && EResourceConstant.CONTEXT.getName().equals(folderName)) {
          node=createNewRepNode(ERepositoryObjectType.CONTEXT,inWhichProject);
        }
      }
      if (node != null) {
        folders.add(node);
      }
    }
  }
  if (inWhichProject.isMainProject()) {
    RecycleBinRepNode recycleBin=new RecycleBinRepNode(DefaultMessagesImpl.getString("String_Node_Str"),inWhichProject);
    folders.add(recycleBin);
  }
  if (org.talend.core.PluginChecker.isRefProjectLoaded() && inWhichProject.getEmfProject() != null && inWhichProject.getEmfProject().getReferencedProjects().size() > 0) {
    if (!ProxyRepositoryManager.getInstance().isMergeRefProject()) {
      DQRepositoryNode refProjectNode=createNewRepNode(ERepositoryObjectType.REFERENCED_PROJECTS,inWhichProject);
      refProjectNode.setProperties(EProperties.LABEL,ERepositoryObjectType.REFERENCED_PROJECTS.getLabel());
      refProjectNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.REFERENCED_PROJECTS);
      folders.add(refProjectNode);
      handleReferenced(refProjectNode);
    }
  }
  return sortRepositoryNode(folders.toArray(),ComparatorsFactory.ROOT_NODES_COMPARATOR_ID);
}

Fixed version (ground truth):
/** 
 * DOC talend Comment method "getWorkspaceRootChildren".
 * @param element
 * @return
 * @throws CoreException
 */
private Object[] createWorkspaceRootChildren(Object element,String projectTechnicalLabel) throws CoreException {
  Project inWhichProject=ProxyRepositoryManager.getInstance().getProjectFromProjectTechnicalLabel(projectTechnicalLabel);
  Object currentOpenProject=null;
  for (  Object child : super.getChildren(element)) {
    if (child instanceof IProject) {
      if (((IProject)child).getName().equals(projectTechnicalLabel)) {
        currentOpenProject=child;
        break;
      }
    }
  }
  List<Object> folders=new ArrayList<Object>();
  Object[] rootFolders=new Object[0];
  if (currentOpenProject != null) {
    rootFolders=((IProject)currentOpenProject).members(false);
    for (    Object folder : rootFolders) {
      IRepositoryNode node=null;
      if (folder instanceof IFolder && ((IFolder)folder).getName().startsWith(RepositoryNodeHelper.PREFIX_TDQ)) {
        IFolder iFolder=(IFolder)folder;
        if (((IFolder)folder).getName().trim().equals("String_Node_Str")) {
          continue;
        }
        IPath relativePath=iFolder.getFullPath().makeRelativeTo(((IProject)currentOpenProject).getFullPath());
        ERepositoryObjectType respositoryObjectType=RepositoryNodeBuilder.getInstance().retrieveRepObjectTypeByPath(relativePath.toOSString());
        node=createNewRepNode(respositoryObjectType,inWhichProject);
      }
      if (folder instanceof IFolder) {
        String folderName=((IFolder)folder).getName();
        if (EResourceConstant.METADATA.getName().equals(folderName)) {
          node=createNewRepNode(ERepositoryObjectType.METADATA,inWhichProject);
        }
 else         if (PluginChecker.isTDQLoaded() && EResourceConstant.CONTEXT.getName().equals(folderName)) {
          node=createNewRepNode(ERepositoryObjectType.CONTEXT,inWhichProject);
        }
      }
      if (node != null) {
        folders.add(node);
      }
    }
  }
  if (inWhichProject.isMainProject()) {
    RecycleBinRepNode recycleBin=new RecycleBinRepNode(DefaultMessagesImpl.getString("String_Node_Str"),inWhichProject);
    folders.add(recycleBin);
  }
  if (org.talend.core.PluginChecker.isRefProjectLoaded() && inWhichProject.getEmfProject() != null && inWhichProject.getProjectReferenceList().size() > 0) {
    if (!ProxyRepositoryManager.getInstance().isMergeRefProject()) {
      DQRepositoryNode refProjectNode=createNewRepNode(ERepositoryObjectType.REFERENCED_PROJECTS,inWhichProject);
      refProjectNode.setProperties(EProperties.LABEL,ERepositoryObjectType.REFERENCED_PROJECTS.getLabel());
      refProjectNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.REFERENCED_PROJECTS);
      folders.add(refProjectNode);
      handleReferenced(refProjectNode);
    }
  }
  return sortRepositoryNode(folders.toArray(),ComparatorsFactory.ROOT_NODES_COMPARATOR_ID);
}