Program: 134544
Project: 134544
Buggy source:
@Override protected boolean buildStructure(OpenableElementInfo info,IProgressMonitor pm,Map<IOpenable,OpenableElementInfo> newElements,IResource underlyingResource) throws YangModelException {
  final HashSet<IResource> resources=new HashSet<IResource>();
  final HashSet<IPath> externalJarsPath=new HashSet<IPath>();
  try {
    project.accept(new IResourceVisitor(){
      @Override public boolean visit(      IResource resource) throws CoreException {
        if (CoreUtil.isYangLikeFileName(resource.getName())) {
          resources.add(resource.getParent());
        }
        return true;
      }
    }
);
    IClasspathEntry[] classpath=JavaCore.create(project).getResolvedClasspath(true);
    for (int i=0, length=classpath.length; i < length; i++) {
      IClasspathEntry entry=classpath[i];
      IPath entryPath=entry.getPath();
      if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
        externalJarsPath.add(entryPath);
      }
    }
  }
 catch (  CoreException e) {
    throw new YangModelException(e);
  }
  ArrayList<IOpenable> result=new ArrayList<IOpenable>();
  for (  IResource resource : resources) {
    if (resource.getType() == IResource.FOLDER) {
      result.add(new YangFolder(resource,this));
    }
  }
  for (  IPath iPath : externalJarsPath) {
    try (JarFile jarFile=new JarFile(iPath.toFile())){
      ZipEntry entry=jarFile.getEntry("String_Node_Str");
      if (entry != null) {
        result.add(new YangJarFile(iPath,this));
      }
    }
 catch (    IOException e) {
      YangCorePlugin.log(e);
    }
  }
  info.setChildren(result.toArray(new IOpenable[result.size()]));
  return true;
}

Fixed version (ground truth):
@Override protected boolean buildStructure(OpenableElementInfo info,IProgressMonitor pm,Map<IOpenable,OpenableElementInfo> newElements,IResource underlyingResource) throws YangModelException {
  final HashSet<IResource> resources=new HashSet<IResource>();
  final HashSet<IPath> externalJarsPath=new HashSet<IPath>();
  IJavaProject javaProject=JavaCore.create(project);
  try {
    project.accept(new IResourceVisitor(){
      @Override public boolean visit(      IResource resource) throws CoreException {
        if (CoreUtil.isYangLikeFileName(resource.getName())) {
          resources.add(resource.getParent());
        }
        return true;
      }
    }
);
    if (javaProject.isOpen()) {
      ((YangProjectInfo)info).setClasspath(javaProject.getRawClasspath());
      IClasspathEntry[] classpath=javaProject.getResolvedClasspath(true);
      for (int i=0, length=classpath.length; i < length; i++) {
        IClasspathEntry entry=classpath[i];
        IPath entryPath=entry.getPath();
        if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
          externalJarsPath.add(entryPath);
        }
      }
    }
  }
 catch (  CoreException e) {
    throw new YangModelException(e);
  }
  ArrayList<IOpenable> result=new ArrayList<IOpenable>();
  for (  IResource resource : resources) {
    if (resource.getType() == IResource.FOLDER) {
      result.add(new YangFolder(resource,this));
    }
  }
  for (  IPath iPath : externalJarsPath) {
    try (JarFile jarFile=new JarFile(iPath.toFile())){
      ZipEntry entry=jarFile.getEntry("String_Node_Str");
      if (entry != null) {
        result.add(new YangJarFile(iPath,this));
      }
    }
 catch (    IOException e) {
      YangCorePlugin.log(e);
    }
  }
  info.setChildren(result.toArray(new IOpenable[result.size()]));
  return javaProject.isOpen();
}