Program: 139183
Project: 139183
Buggy source:
@Override public Object[] getChildren(Object element){
  if (element instanceof IWorkspaceRoot) {
    Object currentOpenProject=null;
    for (    Object child : super.getChildren(element)) {
      if (child instanceof IProject) {
        if (((IProject)child).getName().equals(ResourceManager.getRootProjectName())) {
          currentOpenProject=child;
          break;
        }
      }
    }
    List<Object> folders=new ArrayList<Object>();
    try {
      Object[] rootFolders=new Object[0];
      rootFolders=((IProject)currentOpenProject).members(false);
      for (      Object folder : rootFolders) {
        if (folder instanceof IFolder && ((IFolder)folder).getName().startsWith(DQStructureManager.PREFIX_TDQ)) {
          if (((IFolder)folder).getName().trim().equals("String_Node_Str")) {
            continue;
          }
          folders.add(folder);
        }
      }
    }
 catch (    CoreException e) {
      log.error(e);
    }
    return folders.toArray();
  }
 else   if (element instanceof IFile) {
    IFile file=(IFile)element;
    if (FactoriesUtil.isPatternFile(file.getFileExtension())) {
      Pattern pattern=PatternResourceFileHelper.getInstance().findPattern(file);
      RegularExpression[] regularExp=new RegularExpression[pattern.getComponents().size()];
      int peIdx=0;
      for (      PatternComponent patCom : pattern.getComponents()) {
        regularExp[peIdx]=(RegularExpression)patCom;
        peIdx++;
      }
      return regularExp;
    }
  }
 else   if (element instanceof IFolder) {
    IFolder folder=(IFolder)element;
    if (ResourceManager.isExchangeFolder(folder)) {
      try {
        if (timeoutFlag) {
          String version=CorePlugin.getDefault().getProductVersion().toString();
          return ComponentSearcher.getAvailableCategory(version).toArray();
        }
 else {
          return new String[]{"String_Node_Str"};
        }
      }
 catch (      SocketTimeoutException e) {
        log.error(e,e);
        timeoutFlag=false;
        return new String[]{"String_Node_Str" + e.getMessage()};
      }
catch (      Exception e) {
        log.error(e,e);
        timeoutFlag=false;
        return new String[]{e.getMessage()};
      }
    }
 else     if (ResourceManager.isIndicatorFolder(folder)) {
      return getIndicatorsChildren(folder);
    }
  }
 else   if (element instanceof IEcosCategory) {
    return ((IEcosCategory)element).getComponent().toArray();
  }
 else   if (element instanceof IndicatorCategory) {
    return getIndicatorsChildren((IndicatorCategory)element);
  }
  if (needSortContainers.contains(element)) {
    return sort(super.getChildren(element));
  }
  return super.getChildren(element);
}

Fixed version (ground truth):
@Override public Object[] getChildren(Object element){
  if (element instanceof IWorkspaceRoot) {
    Object currentOpenProject=null;
    for (    Object child : super.getChildren(element)) {
      if (child instanceof IProject) {
        if (((IProject)child).getName().equals(ResourceManager.getRootProjectName())) {
          currentOpenProject=child;
          break;
        }
      }
    }
    List<Object> folders=new ArrayList<Object>();
    try {
      Object[] rootFolders=new Object[0];
      rootFolders=((IProject)currentOpenProject).members(false);
      for (      Object folder : rootFolders) {
        if (folder instanceof IFolder && ((IFolder)folder).getName().startsWith(DQStructureManager.PREFIX_TDQ)) {
          if (((IFolder)folder).getName().trim().equals("String_Node_Str")) {
            continue;
          }
          folders.add(folder);
        }
      }
    }
 catch (    CoreException e) {
      log.error(e);
    }
    return folders.toArray();
  }
 else   if (element instanceof IFile) {
    IFile file=(IFile)element;
    if (FactoriesUtil.isPatternFile(file.getFileExtension())) {
      Pattern pattern=PatternResourceFileHelper.getInstance().findPattern(file);
      RegularExpression[] regularExp=new RegularExpression[pattern.getComponents().size()];
      int peIdx=0;
      for (      PatternComponent patCom : pattern.getComponents()) {
        regularExp[peIdx]=(RegularExpression)patCom;
        peIdx++;
      }
      return regularExp;
    }
  }
 else   if (element instanceof IFolder) {
    IFolder folder=(IFolder)element;
    if (ResourceManager.isExchangeFolder(folder)) {
      try {
        if (timeoutFlag) {
          String version=CorePlugin.getDefault().getProductVersion().toString();
          return ComponentSearcher.getAvailableCategory(version).toArray();
        }
 else {
          return new String[]{"String_Node_Str"};
        }
      }
 catch (      SocketTimeoutException e) {
        timeoutFlag=false;
        return new String[]{"String_Node_Str" + e.getMessage()};
      }
catch (      Exception e) {
        timeoutFlag=false;
        return new String[]{e.getMessage()};
      }
    }
 else     if (ResourceManager.isIndicatorFolder(folder)) {
      return getIndicatorsChildren(folder);
    }
  }
 else   if (element instanceof IEcosCategory) {
    return ((IEcosCategory)element).getComponent().toArray();
  }
 else   if (element instanceof IndicatorCategory) {
    return getIndicatorsChildren((IndicatorCategory)element);
  }
  if (needSortContainers.contains(element)) {
    return sort(super.getChildren(element));
  }
  return super.getChildren(element);
}