Program: 190623
Project: 190623
Buggy source:
@Override public boolean process(Set<? extends TypeElement> annotations,RoundEnvironment roundEnv){
  final ErrorReceiverImpl errorListener=new ErrorReceiverImpl(processingEnv);
  List<Reference> decls=new ArrayList<Reference>();
  for (  Element element : roundEnv.getRootElements()) {
    if (element.getKind().equals(ElementKind.CLASS))     decls.add(new Reference((TypeElement)element,processingEnv));
  }
  J2SJAXBModel model=XJC.createJavaCompiler().bind(decls,Collections.<QName,Reference>emptyMap(),null,processingEnv);
  if (model == null)   return false;
  try {
    model.generateSchema(new SchemaOutputResolver(){
      public Result createOutput(      String namespaceUri,      String suggestedFileName) throws IOException {
        File file;
        OutputStream out;
        if (schemaLocations.containsKey(namespaceUri)) {
          file=schemaLocations.get(namespaceUri);
          if (file == null)           return null;
          out=new FileOutputStream(file);
        }
 else {
          file=new File(suggestedFileName);
          out=processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT,"String_Node_Str",suggestedFileName).openOutputStream();
          file=file.getAbsoluteFile();
        }
        StreamResult ss=new StreamResult(out);
        processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE,"String_Node_Str" + file);
        ss.setSystemId(file.toURL().toExternalForm());
        return ss;
      }
    }
,errorListener);
    if (episodeFile != null) {
      processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE,"String_Node_Str" + episodeFile);
      model.generateEpisodeFile(new StreamResult(episodeFile));
    }
  }
 catch (  IOException e) {
    errorListener.error(e.getMessage(),e);
  }
  return false;
}

Fixed version (ground truth):
@Override public boolean process(Set<? extends TypeElement> annotations,RoundEnvironment roundEnv){
  final ErrorReceiverImpl errorListener=new ErrorReceiverImpl(processingEnv);
  List<Reference> classes=new ArrayList<Reference>();
  filterClass(classes,roundEnv.getRootElements());
  J2SJAXBModel model=XJC.createJavaCompiler().bind(classes,Collections.<QName,Reference>emptyMap(),null,processingEnv);
  if (model == null)   return false;
  try {
    model.generateSchema(new SchemaOutputResolver(){
      public Result createOutput(      String namespaceUri,      String suggestedFileName) throws IOException {
        File file;
        OutputStream out;
        if (schemaLocations.containsKey(namespaceUri)) {
          file=schemaLocations.get(namespaceUri);
          if (file == null)           return null;
          out=new FileOutputStream(file);
        }
 else {
          file=new File(suggestedFileName);
          out=processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT,"String_Node_Str",suggestedFileName).openOutputStream();
          file=file.getAbsoluteFile();
        }
        StreamResult ss=new StreamResult(out);
        processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE,"String_Node_Str" + file);
        ss.setSystemId(file.toURL().toExternalForm());
        return ss;
      }
    }
,errorListener);
    if (episodeFile != null) {
      processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE,"String_Node_Str" + episodeFile);
      model.generateEpisodeFile(new StreamResult(episodeFile));
    }
  }
 catch (  IOException e) {
    errorListener.error(e.getMessage(),e);
  }
  return false;
}