Program: 155902
Project: 155902
Buggy source:
private void processAnnotatedElements(Set<? extends Element> elements) throws IOException {
  logger.info("String_Node_Str" + elements.size() + "String_Node_Str");
  URI uri=filer.getResource(StandardLocation.SOURCE_OUTPUT,"String_Node_Str","String_Node_Str").toUri();
  if (uri.toString().equals("String_Node_Str")) {
    throw new RuntimeException("String_Node_Str");
  }
  List<File> sourcesPath=new LinkedList<File>();
  try {
    if (uri.getScheme() == null)     uri=new URI("String_Node_Str",uri.getSchemeSpecificPart(),uri.getFragment());
  }
 catch (  URISyntaxException e) {
    logger.error("String_Node_Str" + uri + "String_Node_Str");
  }
  File file=new File(uri);
  File generatedSourcesPath=file.getParentFile();
  String[] sourceFolders=getSourceFolders();
  while (generatedSourcesPath != null) {
    for (    String sourceFolder : sourceFolders) {
      File potentialPath=new File(generatedSourcesPath,sourceFolder);
      if (potentialPath.exists()) {
        sourcesPath.add(potentialPath);
        logger.info("String_Node_Str" + potentialPath);
      }
    }
    generatedSourcesPath=generatedSourcesPath.getParentFile();
  }
  sourcesPath.add(generatedSourcesPath);
  prepareTables(elements);
  for (  Element element : elements) {
    if (element instanceof TypeElement) {
      TypeElement model=(TypeElement)element;
      setupModelInfo(model);
    }
  }
  for (  Element element : elements) {
    if (element instanceof TypeElement) {
      TypeElement model=(TypeElement)element;
      processModel(sourcesPath,model);
    }
  }
}

Fixed version (ground truth):
private void processAnnotatedElements(Set<? extends Element> elements) throws IOException {
  logger.info("String_Node_Str" + elements.size() + "String_Node_Str");
  URI uri=filer.getResource(StandardLocation.SOURCE_OUTPUT,"String_Node_Str","String_Node_Str").toUri();
  if (uri.toString().equals("String_Node_Str")) {
    throw new RuntimeException("String_Node_Str");
  }
  List<File> sourcesPath=new LinkedList<File>();
  try {
    if (uri.getScheme() == null)     uri=new URI("String_Node_Str",uri.getSchemeSpecificPart(),uri.getFragment());
  }
 catch (  URISyntaxException e) {
    logger.error("String_Node_Str" + uri + "String_Node_Str");
  }
  File file=new File(uri);
  File outputFolder=file.getParentFile();
  File generatedSourcesPath=outputFolder;
  String[] sourceFolders=getSourceFolders();
  while (generatedSourcesPath != null) {
    for (    String sourceFolder : sourceFolders) {
      File potentialPath=new File(generatedSourcesPath,sourceFolder);
      if (potentialPath.exists()) {
        sourcesPath.add(potentialPath);
        logger.info("String_Node_Str" + potentialPath);
      }
    }
    generatedSourcesPath=generatedSourcesPath.getParentFile();
  }
  sourcesPath.add(outputFolder);
  logger.info("String_Node_Str" + outputFolder);
  prepareTables(elements);
  for (  Element element : elements) {
    if (element instanceof TypeElement) {
      TypeElement model=(TypeElement)element;
      setupModelInfo(model);
    }
  }
  for (  Element element : elements) {
    if (element instanceof TypeElement) {
      TypeElement model=(TypeElement)element;
      processModel(sourcesPath,model);
    }
  }
}