Program: 134497
Project: 134497
Buggy source:
@Override public boolean execute(IProgressMonitor progressMonitor){
  if (this.isCancelled || progressMonitor != null && progressMonitor.isCanceled()) {
    return true;
  }
  if (!this.project.isAccessible()) {
    return true;
  }
  final HashSet<IPath> ignoredPath=new HashSet<IPath>();
  final HashSet<IPath> externalJarsPath=new HashSet<IPath>();
  try {
    JavaProject proj=(JavaProject)JavaCore.create(project);
    if (proj != null) {
      IClasspathEntry[] classpath=proj.getResolvedClasspath();
      for (int i=0, length=classpath.length; i < length; i++) {
        IClasspathEntry entry=classpath[i];
        IPath entryPath=entry.getPath();
        IPath output=entry.getOutputLocation();
        if (output != null && !entryPath.equals(output)) {
          ignoredPath.add(output);
        }
      }
      IPackageFragmentRoot[] roots=proj.getAllPackageFragmentRoots();
      for (int i=0, length=roots.length; i < length; i++) {
        IPath entryPath=roots[i].getPath();
        if (entryPath != null && entryPath.toFile().exists() && entryPath.lastSegment().toLowerCase().endsWith("String_Node_Str")) {
          externalJarsPath.add(entryPath);
        }
      }
    }
  }
 catch (  JavaModelException e) {
  }
  for (  IPath iPath : externalJarsPath) {
    try (JarFile jarFile=new JarFile(iPath.toFile())){
      ZipEntry entry=jarFile.getEntry("String_Node_Str");
      if (entry != null) {
        this.manager.addJarFile(project,iPath);
      }
    }
 catch (    IOException e) {
      YangCorePlugin.log(e);
    }
  }
  try {
    final HashSet<IFile> indexedFiles=new HashSet<IFile>();
    project.accept(new IResourceProxyVisitor(){
      @Override public boolean visit(      IResourceProxy proxy){
        if (IndexAllProject.this.isCancelled) {
          return false;
        }
        if (!ignoredPath.isEmpty() && ignoredPath.contains(proxy.requestFullPath())) {
          return false;
        }
        if (proxy.getType() == IResource.FILE) {
          if (CoreUtil.isYangLikeFileName(proxy.getName())) {
            IFile file=(IFile)proxy.requestResource();
            indexedFiles.add(file);
          }
          return false;
        }
        return true;
      }
    }
,IResource.NONE);
    for (    IFile iFile : indexedFiles) {
      this.manager.addSource(iFile);
    }
  }
 catch (  CoreException e) {
    this.manager.removeIndex(this.containerPath);
    return false;
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean execute(IProgressMonitor progressMonitor){
  if (this.isCancelled || progressMonitor != null && progressMonitor.isCanceled()) {
    return true;
  }
  if (!this.project.isAccessible()) {
    return true;
  }
  final HashSet<IPath> ignoredPath=new HashSet<IPath>();
  final HashSet<IPath> externalJarsPath=new HashSet<IPath>();
  try {
    JavaProject proj=(JavaProject)JavaCore.create(project);
    if (proj != null) {
      IClasspathEntry[] classpath=proj.getResolvedClasspath();
      for (int i=0, length=classpath.length; i < length; i++) {
        IClasspathEntry entry=classpath[i];
        IPath entryPath=entry.getPath();
        IPath output=entry.getOutputLocation();
        if (output != null && !entryPath.equals(output)) {
          ignoredPath.add(output);
        }
      }
      IPackageFragmentRoot[] roots=proj.getAllPackageFragmentRoots();
      for (int i=0, length=roots.length; i < length; i++) {
        IPath entryPath=roots[i].getPath();
        if (entryPath != null && entryPath.toFile().exists() && entryPath.lastSegment().toLowerCase().endsWith("String_Node_Str")) {
          externalJarsPath.add(entryPath);
        }
      }
    }
  }
 catch (  JavaModelException e) {
  }
  for (  IPath iPath : externalJarsPath) {
    try (JarFile jarFile=new JarFile(iPath.toFile())){
      ZipEntry entry=jarFile.getEntry("String_Node_Str");
      if (entry != null) {
        this.manager.addJarFile(project,iPath);
      }
    }
 catch (    IOException e) {
      YangCorePlugin.log(e);
    }
  }
  try {
    final HashSet<IFile> indexedFiles=new HashSet<IFile>();
    project.accept(new IResourceProxyVisitor(){
      @Override public boolean visit(      IResourceProxy proxy){
        if (IndexAllProject.this.isCancelled) {
          return false;
        }
        if (!ignoredPath.isEmpty() && ignoredPath.contains(proxy.requestFullPath())) {
          return false;
        }
        if (proxy.getType() == IResource.FILE) {
          if (CoreUtil.isYangLikeFileName(proxy.getName())) {
            IFile file=(IFile)proxy.requestResource();
            indexedFiles.add(file);
          }
          return false;
        }
        return true;
      }
    }
,IResource.NONE);
    for (    IFile iFile : indexedFiles) {
      this.manager.addSource(iFile);
    }
  }
 catch (  CoreException e) {
    this.manager.removeIndexFamily(project);
    return false;
  }
  return true;
}