Program: 20598
Project: 20598
Buggy source:
/** 
 * @see IActionDelegate#run(IAction)
 */
public void run(IAction action){
  types.clear();
  boolean cpInited=false;
  IProject project=null;
  URLClassLoader classLoader=null;
  try {
    for (    Object q : selectionObject) {
      if (!cpInited) {
        IJavaElement el=(IJavaElement)q;
        IResource resource=el.getResource();
        if (project != null && !project.equals(resource.getProject())) {
          MessageDialog.openInformation(shell,"String_Node_Str","String_Node_Str");
          return;
        }
        project=resource.getProject();
        Collection<String> constructProjectClassPath=new ClassPathCollector().constructProjectClassPath(project,true);
        URL[] urls=new URL[constructProjectClassPath.size()];
        int a=0;
        for (        String s : constructProjectClassPath) {
          urls[a++]=new File(s).toURL();
        }
        classLoader=new URLClassLoader(urls);
        cpInited=true;
      }
    }
  }
 catch (  MalformedURLException e1) {
    e1.printStackTrace();
  }
  IFile file=getNewRAMLFile(project);
  if (file == null) {
    return;
  }
  File outputFile=file.getLocation().toFile();
  visitor=new RuntimeResourceVisitorFactory(outputFile,classLoader).createResourceVisitor();
  for (  Object q : selectionObject) {
    try {
      if (q instanceof IType) {
        visitType((IType)q);
      }
      if (q instanceof IPackageFragment) {
        visitPackage((IPackageFragment)q);
      }
      if (q instanceof IPackageFragmentRoot) {
        visitPackageFragmentRoot((IPackageFragmentRoot)q);
      }
      if (q instanceof IJavaProject) {
        visitProject((IJavaProject)q);
      }
      if (q instanceof ICompilationUnit) {
        visitUnit((ICompilationUnit)q);
      }
    }
 catch (    Exception e) {
      e.printStackTrace();
    }
  }
  if (project != null) {
    saveResult(visitor,file);
  }
}

Fixed version (ground truth):
/** 
 * @see IActionDelegate#run(IAction)
 */
public void run(IAction action){
  types.clear();
  boolean cpInited=false;
  IProject project=null;
  URLClassLoader classLoader=null;
  try {
    for (    Object q : selectionObject) {
      if (!cpInited) {
        IJavaElement el=(IJavaElement)q;
        IResource resource=el.getResource();
        if (project != null && !project.equals(resource.getProject())) {
          MessageDialog.openInformation(shell,"String_Node_Str","String_Node_Str");
          return;
        }
        project=resource.getProject();
        Collection<String> constructProjectClassPath=new ClassPathCollector().constructProjectClassPath(project,true);
        URL[] urls=new URL[constructProjectClassPath.size()];
        int a=0;
        for (        String s : constructProjectClassPath) {
          urls[a++]=new File(s).toURL();
        }
        classLoader=new URLClassLoader(urls);
        cpInited=true;
      }
    }
  }
 catch (  MalformedURLException e1) {
    e1.printStackTrace();
  }
  IFile file=getNewRAMLFile(project);
  if (file == null) {
    return;
  }
  File outputFile=file.getLocation().toFile();
  visitor=new JDTResourceVisitorFactory(outputFile,classLoader).createResourceVisitor();
  for (  Object q : selectionObject) {
    try {
      if (q instanceof IType) {
        visitType((IType)q);
      }
      if (q instanceof IPackageFragment) {
        visitPackage((IPackageFragment)q);
      }
      if (q instanceof IPackageFragmentRoot) {
        visitPackageFragmentRoot((IPackageFragmentRoot)q);
      }
      if (q instanceof IJavaProject) {
        visitProject((IJavaProject)q);
      }
      if (q instanceof ICompilationUnit) {
        visitUnit((ICompilationUnit)q);
      }
    }
 catch (    Exception e) {
      e.printStackTrace();
    }
  }
  if (project != null) {
    saveResult(visitor,file);
  }
}