Program: 83469
Project: 83469
Buggy source:
public Sorcerer(final ParsedSourceSet pss,long timestamp,long expiration) throws IOException {
  this.fsg=new FrameSetGenerator(pss);
  this.timestamp=timestamp;
  this.expiration=expiration;
  for (  final CompilationUnitTree cu : pss.getCompilationUnits()) {
    generators.put(new AstGenerator(pss,cu).getRelativePath(),new JavaScriptGenerator(){
      void doDynamic(      StaplerRequest request,      StaplerResponse rsp) throws IOException {
        new AstGenerator(pss,cu).write(rsp.getWriter());
      }
    }
);
  }
  generators.put("String_Node_Str",new HtmlGenerator(){
    void doDynamic(    StaplerRequest request,    StaplerResponse rsp) throws IOException {
      fsg.generateIndex(open(rsp));
    }
  }
);
  generators.put("String_Node_Str",new JavaScriptGenerator(){
    void doDynamic(    StaplerRequest request,    StaplerResponse rsp) throws IOException {
      fsg.generatePackageListJs(open(rsp));
    }
  }
);
  generators.put("String_Node_Str",new Generator(){
    String getContentType(    String restOfPath){
      return "String_Node_Str";
    }
    void doDynamic(    StaplerRequest request,    StaplerResponse rsp) throws IOException {
      fsg.generatePackageList(open(rsp));
    }
  }
);
  for (  final PackageElement p : pss.getPackageElement()) {
    String path;
    if (p.isUnnamed())     path="String_Node_Str";
 else     path=p.getQualifiedName().toString().replace('.','/') + '/';
    path+="String_Node_Str";
    generators.put(path,new JavaScriptGenerator(){
      void doDynamic(      StaplerRequest request,      StaplerResponse rsp) throws IOException {
        fsg.generateClassListJs(p,open(rsp));
      }
    }
);
  }
  for (  final String r : FrameSetGenerator.RESOURCES) {
    generators.put(r,new Generator(){
      void doDynamic(      StaplerRequest request,      StaplerResponse rsp) throws IOException {
        IOUtil.copy(r,rsp.getOutputStream());
      }
    }
);
  }
}

Fixed version (ground truth):
public Sorcerer(final ParsedSourceSet pss,long timestamp,long expiration) throws IOException {
  this.fsg=new FrameSetGenerator(pss);
  this.timestamp=timestamp;
  this.expiration=expiration;
  for (  final CompilationUnitTree cu : pss.getCompilationUnits()) {
    generators.put(new AstGenerator(pss,cu).getRelativePath(),new JavaScriptGenerator(){
      void doDynamic(      StaplerRequest request,      StaplerResponse rsp) throws IOException {
        new AstGenerator(pss,cu).write(rsp.getWriter());
      }
    }
);
  }
  generators.put("String_Node_Str",new HtmlGenerator(){
    void doDynamic(    StaplerRequest request,    StaplerResponse rsp) throws IOException {
      fsg.generateIndex(open(rsp));
    }
  }
);
  generators.put("String_Node_Str",new JavaScriptGenerator(){
    void doDynamic(    StaplerRequest request,    StaplerResponse rsp) throws IOException {
      fsg.generatePackageListJs(open(rsp));
    }
  }
);
  generators.put("String_Node_Str",new JavaScriptGenerator(){
    void doDynamic(    StaplerRequest request,    StaplerResponse rsp) throws IOException {
      fsg.generateProjectUsageJs(open(rsp));
    }
  }
);
  generators.put("String_Node_Str",new Generator(){
    String getContentType(    String restOfPath){
      return "String_Node_Str";
    }
    void doDynamic(    StaplerRequest request,    StaplerResponse rsp) throws IOException {
      fsg.generatePackageList(open(rsp));
    }
  }
);
  for (  final PackageElement p : pss.getPackageElement()) {
    String path;
    if (p.isUnnamed())     path="String_Node_Str";
 else     path=p.getQualifiedName().toString().replace('.','/') + '/';
    path+="String_Node_Str";
    generators.put(path,new JavaScriptGenerator(){
      void doDynamic(      StaplerRequest request,      StaplerResponse rsp) throws IOException {
        fsg.generateClassListJs(p,open(rsp));
      }
    }
);
  }
  for (  final String r : FrameSetGenerator.RESOURCES) {
    generators.put(r,new Generator(){
      void doDynamic(      StaplerRequest request,      StaplerResponse rsp) throws IOException {
        IOUtil.copy(r,rsp.getOutputStream());
      }
    }
);
  }
}