Program: 11727
Project: 11727
Buggy source:
public ClassLoader getClassLoader(ResourceSet resourceSet){
  IJavaProject project=getJavaProject(resourceSet);
  if (project != null) {
    IWorkspaceRoot workspaceRoot=project.getProject().getWorkspace().getRoot();
    List<URL> libraryURLs=new UniqueEList<URL>();
    try {
      getAllReferencedProjects(libraryURLs,new IProject[]{project.getProject()});
      IClasspathEntry[] classpath=project.getResolvedClasspath(true);
      if (classpath != null) {
        for (int i=0; i < classpath.length; ++i) {
          IClasspathEntry classpathEntry=classpath[i];
switch (classpathEntry.getEntryKind()) {
case IClasspathEntry.CPE_LIBRARY:
case IClasspathEntry.CPE_CONTAINER:
{
              libraryURLs.add(new URL(URI.createFileURI(classpathEntry.getPath().toString()).toString()));
              break;
            }
case IClasspathEntry.CPE_PROJECT:
{
            IProject referencedProject=workspaceRoot.getProject(classpathEntry.getPath().segment(0));
            IJavaProject referencedJavaProject=JavaCore.create(referencedProject);
            IContainer container=workspaceRoot.getFolder(referencedJavaProject.getOutputLocation());
            libraryURLs.add(new URL(URI.createFileURI(container.getLocation().toString() + "String_Node_Str").toString()));
            IProjectDescription description=referencedProject.getDescription();
            getAllReferencedProjects(libraryURLs,description.getReferencedProjects());
            getAllReferencedProjects(libraryURLs,description.getDynamicReferences());
            break;
          }
case IClasspathEntry.CPE_SOURCE:
case IClasspathEntry.CPE_VARIABLE:
default :
{
          break;
        }
    }
  }
}
return new URLClassLoader(libraryURLs.toArray(new URL[libraryURLs.size()]),getClass().getClassLoader());
}
 catch (MalformedURLException exception) {
exception.printStackTrace();
}
catch (JavaModelException exception) {
exception.printStackTrace();
}
catch (CoreException exception) {
exception.printStackTrace();
}
}
for (Resource resource : resourceSet.getResources()) {
URI uri=resource.getURI();
if (uri.isPlatformPlugin()) {
final Bundle bundle=Platform.getBundle(uri.segments()[1]);
return new ClassLoader(){
  @Override public Enumeration<URL> findResources(  String name) throws IOException {
    return bundle.getResources(name);
  }
  @Override public URL findResource(  String name){
    return bundle.getResource(name);
  }
  @Override public URL getResource(  String name){
    return findResource(name);
  }
  @Override public Class<?> findClass(  String name) throws ClassNotFoundException {
    return bundle.loadClass(name);
  }
  @Override protected Class<?> loadClass(  String name,  boolean resolve) throws ClassNotFoundException {
    Class<?> clazz=findClass(name);
    if (resolve) {
      resolveClass(clazz);
    }
    return clazz;
  }
}
;
}
}
return null;
}

Fixed version (ground truth):
public ClassLoader getClassLoader(ResourceSet resourceSet){
  IJavaProject project=getJavaProject(resourceSet);
  if (project != null) {
    IProject iProject=project.getProject();
    IWorkspaceRoot workspaceRoot=iProject.getWorkspace().getRoot();
    List<URL> libraryURLs=new UniqueEList<URL>();
    try {
      getAllReferencedProjects(libraryURLs,new IProject[]{iProject});
      IClasspathEntry[] classpath=project.getResolvedClasspath(true);
      if (classpath != null) {
        String projectName=iProject.getName();
        for (int i=0; i < classpath.length; ++i) {
          IClasspathEntry classpathEntry=classpath[i];
switch (classpathEntry.getEntryKind()) {
case IClasspathEntry.CPE_LIBRARY:
case IClasspathEntry.CPE_CONTAINER:
{
              IPath path=classpathEntry.getPath();
              if (path.segment(0).equals(projectName)) {
                path=iProject.getLocation().append(path.removeFirstSegments(1));
              }
              libraryURLs.add(new URL(URI.createFileURI(path.toString()).toString()));
              break;
            }
case IClasspathEntry.CPE_PROJECT:
{
            IPath path=classpathEntry.getPath();
            IProject referencedProject=workspaceRoot.getProject(path.segment(0));
            IJavaProject referencedJavaProject=JavaCore.create(referencedProject);
            IContainer container=workspaceRoot.getFolder(referencedJavaProject.getOutputLocation());
            libraryURLs.add(new URL(URI.createFileURI(container.getLocation().toString() + "String_Node_Str").toString()));
            IProjectDescription description=referencedProject.getDescription();
            getAllReferencedProjects(libraryURLs,description.getReferencedProjects());
            getAllReferencedProjects(libraryURLs,description.getDynamicReferences());
            break;
          }
case IClasspathEntry.CPE_SOURCE:
case IClasspathEntry.CPE_VARIABLE:
default :
{
          break;
        }
    }
  }
}
return new URLClassLoader(libraryURLs.toArray(new URL[libraryURLs.size()]),getClass().getClassLoader());
}
 catch (MalformedURLException exception) {
exception.printStackTrace();
}
catch (JavaModelException exception) {
exception.printStackTrace();
}
catch (CoreException exception) {
exception.printStackTrace();
}
}
for (Resource resource : resourceSet.getResources()) {
URI uri=resource.getURI();
if (uri.isPlatformPlugin()) {
final Bundle bundle=Platform.getBundle(uri.segments()[1]);
return new ClassLoader(){
  @Override public Enumeration<URL> findResources(  String name) throws IOException {
    return bundle.getResources(name);
  }
  @Override public URL findResource(  String name){
    return bundle.getResource(name);
  }
  @Override public URL getResource(  String name){
    return findResource(name);
  }
  @Override public Class<?> findClass(  String name) throws ClassNotFoundException {
    return bundle.loadClass(name);
  }
  @Override protected Class<?> loadClass(  String name,  boolean resolve) throws ClassNotFoundException {
    Class<?> clazz=findClass(name);
    if (resolve) {
      resolveClass(clazz);
    }
    return clazz;
  }
}
;
}
}
return null;
}