Program: 30142
Project: 30142
Buggy source:
/** 
 * This scanner will scan the archiveFile for annotation processing.
 * @param readableArchive the archive to process
 * @param webBundleDesc existing bundle descriptor to add to
 * @param classLoader classloader to load archive classes with.
 */
@Override public void process(ReadableArchive readableArchive,WebBundleDescriptor webBundleDesc,ClassLoader classLoader,Parser parser) throws IOException {
  this.archiveFile=new File(readableArchive.getURI());
  this.classLoader=classLoader;
  if (parser == null) {
    ParsingContext.Builder builder=new ParsingContext.Builder();
    builder.logger(logger);
    ParsingContext pc=builder.build();
    parser=new Parser(pc);
  }
  this.classParser=parser;
  if (AnnotationUtils.getLogger().isLoggable(Level.FINE)) {
    AnnotationUtils.getLogger().fine("String_Node_Str" + archiveFile);
    AnnotationUtils.getLogger().fine("String_Node_Str" + webBundleDesc);
    AnnotationUtils.getLogger().fine("String_Node_Str" + classLoader);
  }
  if (!archiveFile.isDirectory()) {
    return;
  }
  if (isScanOtherLibraries()) {
    addLibraryJars(webBundleDesc,readableArchive);
    calculateResults();
    return;
  }
  File webinf=new File(archiveFile,"String_Node_Str");
  if (webBundleDesc instanceof WebFragmentDescriptor) {
    WebFragmentDescriptor webFragmentDesc=(WebFragmentDescriptor)webBundleDesc;
    File lib=new File(webinf,"String_Node_Str");
    if (lib.exists()) {
      File jarFile=new File(lib,webFragmentDesc.getJarName());
      if (jarFile.exists()) {
        if (jarFile.isDirectory()) {
          addScanDirectory(jarFile);
        }
 else {
          addScanJar(jarFile);
        }
      }
    }
  }
 else {
    File classes=new File(webinf,"String_Node_Str");
    if (classes.exists()) {
      addScanDirectory(classes);
    }
    scanXmlDefinedClassesIfNecessary(webBundleDesc);
  }
  calculateResults();
}

Fixed version (ground truth):
/** 
 * This scanner will scan the archiveFile for annotation processing.
 * @param readableArchive the archive to process
 * @param webBundleDesc existing bundle descriptor to add to
 * @param classLoader classloader to load archive classes with.
 */
@Override public void process(ReadableArchive readableArchive,WebBundleDescriptor webBundleDesc,ClassLoader classLoader,Parser parser) throws IOException {
  this.archiveFile=new File(readableArchive.getURI());
  this.classLoader=classLoader;
  setParser(parser);
  if (AnnotationUtils.getLogger().isLoggable(Level.FINE)) {
    AnnotationUtils.getLogger().fine("String_Node_Str" + archiveFile);
    AnnotationUtils.getLogger().fine("String_Node_Str" + webBundleDesc);
    AnnotationUtils.getLogger().fine("String_Node_Str" + classLoader);
  }
  if (!archiveFile.isDirectory()) {
    return;
  }
  if (isScanOtherLibraries()) {
    addLibraryJars(webBundleDesc,readableArchive);
    calculateResults();
    return;
  }
  File webinf=new File(archiveFile,"String_Node_Str");
  if (webBundleDesc instanceof WebFragmentDescriptor) {
    WebFragmentDescriptor webFragmentDesc=(WebFragmentDescriptor)webBundleDesc;
    File lib=new File(webinf,"String_Node_Str");
    if (lib.exists()) {
      File jarFile=new File(lib,webFragmentDesc.getJarName());
      if (jarFile.exists()) {
        if (jarFile.isDirectory()) {
          addScanDirectory(jarFile);
        }
 else {
          addScanJar(jarFile);
        }
      }
    }
  }
 else {
    File classes=new File(webinf,"String_Node_Str");
    if (classes.exists()) {
      addScanDirectory(classes);
    }
    scanXmlDefinedClassesIfNecessary(webBundleDesc);
  }
  calculateResults();
}