Program: 84848
Project: 84848
Buggy source:
@Override public void compile(){
  int size=this.markers.size();
  if (size > 0) {
    StringBuilder buf=new StringBuilder("String_Node_Str").append(this.inputFile).append("String_Node_Str");
    String code=this.inputFile.getCode();
    int warnings=this.markers.getWarnings();
    int errors=this.markers.getErrors();
    this.markers.sort();
    for (    Marker marker : this.markers) {
      marker.log(code,buf);
    }
    buf.append(errors).append(errors == 1 ? "String_Node_Str" : "String_Node_Str").append(warnings).append(warnings == 1 ? "String_Node_Str" : "String_Node_Str");
    DyvilCompiler.logger.info(buf.toString());
    if (errors > 0) {
      DyvilCompiler.logger.warning(this.name + "String_Node_Str");
      return;
    }
  }
  for (int i=0; i < this.classCount; i++) {
    IClass iclass=this.classes[i];
    String name=iclass.getName().qualified;
    if (!name.equals(this.name)) {
      name=this.name + "String_Node_Str" + name+ "String_Node_Str";
    }
 else {
      name+="String_Node_Str";
    }
    File file=new File(this.outputDirectory,name);
    ClassWriter.compile(file,iclass);
    IClassBody body=iclass.getBody();
    if (body != null) {
      int len=body.classCount();
      for (int j=0; j < len; j++) {
        IClass iclass1=body.getClass(j);
        name=this.name + "String_Node_Str" + iclass1.getName().qualified+ "String_Node_Str";
        file=new File(this.outputDirectory,name);
        ClassWriter.compile(file,iclass1);
      }
    }
  }
  for (int i=0; i < this.innerClassCount; i++) {
    NestedClass iclass=this.innerClasses[i];
    String name=iclass.getName().qualified + "String_Node_Str";
    File file=new File(this.outputDirectory,name);
    ClassWriter.compile(file,iclass);
  }
}

Fixed version (ground truth):
@Override public void compile(){
  int size=this.markers.size();
  if (size > 0) {
    StringBuilder buf=new StringBuilder("String_Node_Str").append(this.inputFile).append("String_Node_Str");
    String code=this.inputFile.getCode();
    int warnings=this.markers.getWarnings();
    int errors=this.markers.getErrors();
    this.markers.sort();
    for (    Marker marker : this.markers) {
      marker.log(code,buf);
    }
    buf.append(errors).append(errors == 1 ? "String_Node_Str" : "String_Node_Str").append(warnings).append(warnings == 1 ? "String_Node_Str" : "String_Node_Str");
    DyvilCompiler.logger.info(buf.toString());
    if (errors > 0) {
      DyvilCompiler.logger.warning(this.name + "String_Node_Str");
      return;
    }
  }
  for (int i=0; i < this.classCount; i++) {
    IClass iclass=this.classes[i];
    String name=iclass.getName().qualified;
    if (!name.equals(this.name)) {
      name=this.name + "String_Node_Str" + name+ "String_Node_Str";
    }
 else {
      name+="String_Node_Str";
    }
    File file=new File(this.outputDirectory,name);
    ClassWriter.compile(file,iclass);
    IClassBody body=iclass.getBody();
    if (body != null) {
      int len=body.classCount();
      for (int j=0; j < len; j++) {
        IClass iclass1=body.getClass(j);
        name=this.name + "String_Node_Str" + iclass1.getName().qualified+ "String_Node_Str";
        file=new File(this.outputDirectory,name);
        ClassWriter.compile(file,iclass1);
      }
    }
  }
  for (int i=0; i < this.innerClassCount; i++) {
    IClassCompilable iclass=this.innerClasses[i];
    String name=iclass.getFileName() + "String_Node_Str";
    File file=new File(this.outputDirectory,name);
    ClassWriter.compile(file,iclass);
  }
}