Program: 24120
Project: 24120
Buggy source:
private void processExample(Example e,ResourceDefn resource,Profile profile) throws Exception {
  if (e.getType() == ExampleType.Tool)   return;
  DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
  factory.setNamespaceAware(true);
  DocumentBuilder builder=factory.newDocumentBuilder();
  Document xdoc;
  String narrative=null;
  String n=e.getFileTitle();
  if (!e.getPath().exists())   throw new Exception("String_Node_Str");
  xdoc=e.getXml() == null ? builder.parse(new CSFileInputStream(e.getPath())) : e.getXml();
  XmlGenerator xmlgen=new XmlGenerator();
  if (xdoc.getDocumentElement().getLocalName().equals("String_Node_Str"))   xmlgen.generate(xdoc.getDocumentElement(),new CSFile(page.getFolders().dstDir + n + "String_Node_Str"),"String_Node_Str",xdoc.getDocumentElement().getLocalName());
 else {
    xmlgen.generate(xdoc.getDocumentElement(),new CSFile(page.getFolders().dstDir + n + "String_Node_Str"),"String_Node_Str",xdoc.getDocumentElement().getLocalName());
  }
  String rt=null;
  Resource r;
  try {
    XmlParser xml=new XmlParser();
    XhtmlNode combined=new XhtmlNode(NodeType.Element,"String_Node_Str");
    Resource rf=xml.parse(new CSFileInputStream(page.getFolders().dstDir + n + "String_Node_Str"));
    if (rf.getId() == null)     throw new Exception("String_Node_Str" + n + "String_Node_Str");
    boolean wantSave=false;
    if (rf instanceof Bundle) {
      rt=((Bundle)rf).getEntry().get(0).getResource().getResourceType().toString();
      for (      BundleEntryComponent ae : ((Bundle)rf).getEntry()) {
        r=ae.getResource();
        if (r.getId() == null)         throw new Exception("String_Node_Str" + n + "String_Node_Str");
        if (r instanceof DomainResource) {
          DomainResource dr=(DomainResource)r;
          wantSave=wantSave || (dr.getText() == null || dr.getText().getDiv() == null);
          if (true) {
            NarrativeGenerator gen=new NarrativeGenerator("String_Node_Str",page.getWorkerContext().clone(new SpecificationInternalClient(page,(Bundle)r)));
            gen.generate(dr);
          }
          if (dr.getText() != null && dr.getText().getDiv() != null) {
            combined.getChildNodes().add(dr.getText().getDiv());
            combined.addTag("String_Node_Str");
          }
        }
      }
      narrative=new XhtmlComposer().setXmlOnly(true).compose(combined);
      if (true) {
        new XmlComposer().compose(new FileOutputStream(page.getFolders().dstDir + n + "String_Node_Str"),rf,true,true);
        xdoc=builder.parse(new CSFileInputStream(page.getFolders().dstDir + n + "String_Node_Str"));
      }
      r=null;
    }
 else {
      r=rf;
      rt=r.getResourceType().toString();
      if (r instanceof DomainResource) {
        DomainResource dr=(DomainResource)r;
        wantSave=dr.getText() == null || dr.getText().getDiv() == null;
        if (wantSave) {
          NarrativeGenerator gen=new NarrativeGenerator("String_Node_Str",page.getWorkerContext().clone(new SpecificationInternalClient(page,null)));
          gen.generate(dr);
        }
        if (dr.getText() != null && dr.getText().getDiv() != null) {
          narrative=new XhtmlComposer().compose(dr.getText().getDiv());
          if (true) {
            new XmlComposer().compose(new FileOutputStream(page.getFolders().dstDir + n + "String_Node_Str"),r,true,true);
            xdoc=builder.parse(new CSFileInputStream(page.getFolders().dstDir + n + "String_Node_Str"));
          }
        }
 else         narrative="String_Node_Str";
      }
    }
  }
 catch (  Exception ex) {
    XhtmlNode xhtml=new XhtmlNode(NodeType.Element,"String_Node_Str");
    xhtml.addTag("String_Node_Str").setAttribute("String_Node_Str","String_Node_Str").addText("String_Node_Str" + ex.getMessage());
    narrative=new XhtmlComposer().compose(xhtml);
    r=null;
  }
  if (r instanceof ValueSet) {
    ValueSet vs=(ValueSet)r;
    new ValueSetValidator(page.getWorkerContext()).validate("String_Node_Str" + n,vs,false,false);
    if (vs.getIdentifier() == null)     throw new Exception("String_Node_Str" + e.getPath().getAbsolutePath() + "String_Node_Str");
    vs.setTag("String_Node_Str",n + "String_Node_Str");
    if (vs.getIdentifier().startsWith("String_Node_Str"))     page.getValueSets().put(vs.getIdentifier(),vs);
    if (vs.getDefine() != null) {
      page.getCodeSystems().put(vs.getDefine().getSystem().toString(),vs);
    }
    addToResourceFeed(vs,valueSetsFeed);
    page.getDefinitions().getValuesets().put(vs.getIdentifier(),vs);
    if (vs.getDefine() != null) {
      page.getDefinitions().getCodeSystems().put(vs.getDefine().getSystem(),vs);
    }
  }
 else   if (r instanceof ConceptMap) {
    ConceptMap cm=(ConceptMap)r;
    new ConceptMapValidator(page.getDefinitions(),e.getPath().getAbsolutePath()).validate(cm,false);
    if (cm.getIdentifier() == null)     throw new Exception("String_Node_Str" + e.getPath().getAbsolutePath() + "String_Node_Str");
    addToResourceFeed(cm,conceptMapsFeed);
    page.getDefinitions().getConceptMaps().put(cm.getIdentifier(),cm);
    cm.setTag("String_Node_Str",n + "String_Node_Str");
    page.getConceptMaps().put(cm.getIdentifier(),cm);
  }
  try {
    javaReferencePlatform.canonicaliseXml(page.getFolders().dstDir,page.getFolders().dstDir + n + "String_Node_Str",page.getFolders().dstDir + n + "String_Node_Str");
  }
 catch (  Throwable t) {
    System.out.println("String_Node_Str" + page.getFolders().dstDir + n+ "String_Node_Str");
    t.printStackTrace(System.err);
    TextFile.stringToFile(t.getMessage(),page.getFolders().dstDir + n + "String_Node_Str");
  }
  String json;
  try {
    json=javaReferencePlatform.convertToJson(page.getFolders().dstDir,page.getFolders().dstDir + n + "String_Node_Str",page.getFolders().dstDir + n + "String_Node_Str");
  }
 catch (  Throwable t) {
    System.out.println("String_Node_Str" + page.getFolders().dstDir + n+ "String_Node_Str");
    t.printStackTrace(System.err);
    TextFile.stringToFile(t.getMessage(),page.getFolders().dstDir + n + "String_Node_Str");
    json=t.getMessage();
  }
  String json2="String_Node_Str" + Utilities.escapeXml(e.getDescription()) + "String_Node_Str"+ page.getFolders().dstDir+ n+ "String_Node_Str"+ page.getFolders().dstDir+ n+ "String_Node_Str"+ Utilities.escapeXml(json)+ "String_Node_Str";
  json="String_Node_Str" + Utilities.escapeXml(e.getDescription()) + "String_Node_Str"+ Utilities.escapeXml(json)+ "String_Node_Str";
  String html=TextFile.fileToString(page.getFolders().srcDir + "String_Node_Str").replace("String_Node_Str",json);
  html=page.processPageIncludes(n + "String_Node_Str",html,resource == null ? "String_Node_Str" + rt : "String_Node_Str" + resource.getName(),null,null);
  TextFile.stringToFile(html,page.getFolders().dstDir + n + "String_Node_Str");
  page.getEpub().registerExternal(n + "String_Node_Str");
  e.setJson(json2);
  builder=factory.newDocumentBuilder();
  xdoc=builder.parse(new CSFileInputStream(new CSFile(page.getFolders().dstDir + n + "String_Node_Str")));
  XhtmlGenerator xhtml=new XhtmlGenerator(new ExampleAdorner(page.getDefinitions()));
  ByteArrayOutputStream b=new ByteArrayOutputStream();
  xhtml.generate(xdoc,b,n.toUpperCase().substring(0,1) + n.substring(1),Utilities.noString(e.getId()) ? e.getDescription() : e.getDescription() + "String_Node_Str" + e.getId()+ "String_Node_Str",0,true,n + "String_Node_Str");
  html=TextFile.fileToString(page.getFolders().srcDir + "String_Node_Str").replace("String_Node_Str",b.toString());
  html=page.processPageIncludes(n + "String_Node_Str",html,resource == null ? "String_Node_Str" + rt : "String_Node_Str" + resource.getName(),null,null);
  TextFile.stringToFile(html,page.getFolders().dstDir + n + "String_Node_Str");
  if (e.isInBook()) {
    XhtmlDocument d=new XhtmlParser().parse(new CSFileInputStream(page.getFolders().dstDir + n + "String_Node_Str"),"String_Node_Str");
    XhtmlNode pre=d.getElement("String_Node_Str").getElement("String_Node_Str").getElement("String_Node_Str");
    e.setXhtm(b.toString());
  }
  if (!Utilities.noString(e.getId()))   Utilities.copyFile(new CSFile(page.getFolders().dstDir + n + "String_Node_Str"),new CSFile(page.getFolders().dstDir + "String_Node_Str" + File.separator+ n+ "String_Node_Str"+ e.getId()+ "String_Node_Str"));
 else   Utilities.copyFile(new CSFile(page.getFolders().dstDir + n + "String_Node_Str"),new CSFile(page.getFolders().dstDir + "String_Node_Str" + File.separator+ n+ "String_Node_Str"));
  html=TextFile.fileToString(page.getFolders().srcDir + "String_Node_Str").replace("String_Node_Str",narrative == null ? "String_Node_Str" : narrative);
  html=page.processPageIncludes(n + "String_Node_Str",html,resource == null ? "String_Node_Str" + rt : "String_Node_Str" + resource.getName(),null,null);
  TextFile.stringToFile(html,page.getFolders().dstDir + n + "String_Node_Str");
  page.getEpub().registerExternal(n + "String_Node_Str");
  page.getEpub().registerExternal(n + "String_Node_Str");
  page.getEpub().registerExternal(n + "String_Node_Str");
}

Fixed version (ground truth):
private void processExample(Example e,String resourceName,Profile profile) throws Exception {
  if (e.getType() == ExampleType.Tool)   return;
  DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
  factory.setNamespaceAware(true);
  DocumentBuilder builder=factory.newDocumentBuilder();
  Document xdoc;
  String narrative=null;
  String n=e.getFileTitle();
  if (!e.getPath().exists())   throw new Exception("String_Node_Str");
  xdoc=e.getXml() == null ? builder.parse(new CSFileInputStream(e.getPath())) : e.getXml();
  XmlGenerator xmlgen=new XmlGenerator();
  if (xdoc.getDocumentElement().getLocalName().equals("String_Node_Str"))   xmlgen.generate(xdoc.getDocumentElement(),new CSFile(page.getFolders().dstDir + n + "String_Node_Str"),"String_Node_Str",xdoc.getDocumentElement().getLocalName());
 else {
    xmlgen.generate(xdoc.getDocumentElement(),new CSFile(page.getFolders().dstDir + n + "String_Node_Str"),"String_Node_Str",xdoc.getDocumentElement().getLocalName());
  }
  String rt=null;
  Resource r;
  try {
    XmlParser xml=new XmlParser();
    XhtmlNode combined=new XhtmlNode(NodeType.Element,"String_Node_Str");
    Resource rf=xml.parse(new CSFileInputStream(page.getFolders().dstDir + n + "String_Node_Str"));
    if (rf.getId() == null)     throw new Exception("String_Node_Str" + n + "String_Node_Str");
    boolean wantSave=false;
    if (rf instanceof Bundle) {
      rt=((Bundle)rf).getEntry().get(0).getResource().getResourceType().toString();
      for (      BundleEntryComponent ae : ((Bundle)rf).getEntry()) {
        r=ae.getResource();
        if (r.getId() == null)         throw new Exception("String_Node_Str" + n + "String_Node_Str");
        if (r instanceof DomainResource) {
          DomainResource dr=(DomainResource)r;
          wantSave=wantSave || (dr.getText() == null || dr.getText().getDiv() == null);
          if (true) {
            NarrativeGenerator gen=new NarrativeGenerator("String_Node_Str",page.getWorkerContext().clone(new SpecificationInternalClient(page,(Bundle)r)));
            gen.generate(dr);
          }
          if (dr.getText() != null && dr.getText().getDiv() != null) {
            combined.getChildNodes().add(dr.getText().getDiv());
            combined.addTag("String_Node_Str");
          }
        }
      }
      narrative=new XhtmlComposer().setXmlOnly(true).compose(combined);
      if (true) {
        new XmlComposer().compose(new FileOutputStream(page.getFolders().dstDir + n + "String_Node_Str"),rf,true,true);
        xdoc=builder.parse(new CSFileInputStream(page.getFolders().dstDir + n + "String_Node_Str"));
      }
      r=null;
    }
 else {
      r=rf;
      rt=r.getResourceType().toString();
      if (r instanceof DomainResource) {
        DomainResource dr=(DomainResource)r;
        wantSave=dr.getText() == null || dr.getText().getDiv() == null;
        if (wantSave) {
          NarrativeGenerator gen=new NarrativeGenerator("String_Node_Str",page.getWorkerContext().clone(new SpecificationInternalClient(page,null)));
          gen.generate(dr);
        }
        if (dr.getText() != null && dr.getText().getDiv() != null) {
          narrative=new XhtmlComposer().compose(dr.getText().getDiv());
          if (true) {
            new XmlComposer().compose(new FileOutputStream(page.getFolders().dstDir + n + "String_Node_Str"),r,true,true);
            xdoc=builder.parse(new CSFileInputStream(page.getFolders().dstDir + n + "String_Node_Str"));
          }
        }
 else         narrative="String_Node_Str";
      }
    }
  }
 catch (  Exception ex) {
    XhtmlNode xhtml=new XhtmlNode(NodeType.Element,"String_Node_Str");
    xhtml.addTag("String_Node_Str").setAttribute("String_Node_Str","String_Node_Str").addText("String_Node_Str" + ex.getMessage());
    narrative=new XhtmlComposer().compose(xhtml);
    r=null;
  }
  if (r instanceof ValueSet) {
    ValueSet vs=(ValueSet)r;
    new ValueSetValidator(page.getWorkerContext()).validate("String_Node_Str" + n,vs,false,false);
    if (vs.getIdentifier() == null)     throw new Exception("String_Node_Str" + e.getPath().getAbsolutePath() + "String_Node_Str");
    vs.setTag("String_Node_Str",n + "String_Node_Str");
    if (vs.getIdentifier().startsWith("String_Node_Str"))     page.getValueSets().put(vs.getIdentifier(),vs);
    if (vs.getDefine() != null) {
      page.getCodeSystems().put(vs.getDefine().getSystem().toString(),vs);
    }
    addToResourceFeed(vs,valueSetsFeed);
    page.getDefinitions().getValuesets().put(vs.getIdentifier(),vs);
    if (vs.getDefine() != null) {
      page.getDefinitions().getCodeSystems().put(vs.getDefine().getSystem(),vs);
    }
  }
 else   if (r instanceof ConceptMap) {
    ConceptMap cm=(ConceptMap)r;
    new ConceptMapValidator(page.getDefinitions(),e.getPath().getAbsolutePath()).validate(cm,false);
    if (cm.getIdentifier() == null)     throw new Exception("String_Node_Str" + e.getPath().getAbsolutePath() + "String_Node_Str");
    addToResourceFeed(cm,conceptMapsFeed);
    page.getDefinitions().getConceptMaps().put(cm.getIdentifier(),cm);
    cm.setTag("String_Node_Str",n + "String_Node_Str");
    page.getConceptMaps().put(cm.getIdentifier(),cm);
  }
  try {
    javaReferencePlatform.canonicaliseXml(page.getFolders().dstDir,page.getFolders().dstDir + n + "String_Node_Str",page.getFolders().dstDir + n + "String_Node_Str");
  }
 catch (  Throwable t) {
    System.out.println("String_Node_Str" + page.getFolders().dstDir + n+ "String_Node_Str");
    t.printStackTrace(System.err);
    TextFile.stringToFile(t.getMessage(),page.getFolders().dstDir + n + "String_Node_Str");
  }
  String json;
  try {
    json=javaReferencePlatform.convertToJson(page.getFolders().dstDir,page.getFolders().dstDir + n + "String_Node_Str",page.getFolders().dstDir + n + "String_Node_Str");
  }
 catch (  Throwable t) {
    System.out.println("String_Node_Str" + page.getFolders().dstDir + n+ "String_Node_Str");
    t.printStackTrace(System.err);
    TextFile.stringToFile(t.getMessage(),page.getFolders().dstDir + n + "String_Node_Str");
    json=t.getMessage();
  }
  String json2="String_Node_Str" + Utilities.escapeXml(e.getDescription()) + "String_Node_Str"+ page.getFolders().dstDir+ n+ "String_Node_Str"+ page.getFolders().dstDir+ n+ "String_Node_Str"+ Utilities.escapeXml(json)+ "String_Node_Str";
  json="String_Node_Str" + Utilities.escapeXml(e.getDescription()) + "String_Node_Str"+ Utilities.escapeXml(json)+ "String_Node_Str";
  String html=TextFile.fileToString(page.getFolders().srcDir + "String_Node_Str").replace("String_Node_Str",json);
  html=page.processPageIncludes(n + "String_Node_Str",html,resourceName == null ? "String_Node_Str" + rt : "String_Node_Str" + resourceName,null,null);
  TextFile.stringToFile(html,page.getFolders().dstDir + n + "String_Node_Str");
  page.getEpub().registerExternal(n + "String_Node_Str");
  e.setJson(json2);
  builder=factory.newDocumentBuilder();
  xdoc=builder.parse(new CSFileInputStream(new CSFile(page.getFolders().dstDir + n + "String_Node_Str")));
  XhtmlGenerator xhtml=new XhtmlGenerator(new ExampleAdorner(page.getDefinitions()));
  ByteArrayOutputStream b=new ByteArrayOutputStream();
  xhtml.generate(xdoc,b,n.toUpperCase().substring(0,1) + n.substring(1),Utilities.noString(e.getId()) ? e.getDescription() : e.getDescription() + "String_Node_Str" + e.getId()+ "String_Node_Str",0,true,n + "String_Node_Str");
  html=TextFile.fileToString(page.getFolders().srcDir + "String_Node_Str").replace("String_Node_Str",b.toString());
  html=page.processPageIncludes(n + "String_Node_Str",html,resourceName == null ? "String_Node_Str" + rt : "String_Node_Str" + resourceName,null,null);
  TextFile.stringToFile(html,page.getFolders().dstDir + n + "String_Node_Str");
  if (e.isInBook()) {
    XhtmlDocument d=new XhtmlParser().parse(new CSFileInputStream(page.getFolders().dstDir + n + "String_Node_Str"),"String_Node_Str");
    XhtmlNode pre=d.getElement("String_Node_Str").getElement("String_Node_Str").getElement("String_Node_Str");
    e.setXhtm(b.toString());
  }
  if (!Utilities.noString(e.getId()))   Utilities.copyFile(new CSFile(page.getFolders().dstDir + n + "String_Node_Str"),new CSFile(page.getFolders().dstDir + "String_Node_Str" + File.separator+ n+ "String_Node_Str"+ e.getId()+ "String_Node_Str"));
 else   Utilities.copyFile(new CSFile(page.getFolders().dstDir + n + "String_Node_Str"),new CSFile(page.getFolders().dstDir + "String_Node_Str" + File.separator+ n+ "String_Node_Str"));
  html=TextFile.fileToString(page.getFolders().srcDir + "String_Node_Str").replace("String_Node_Str",narrative == null ? "String_Node_Str" : narrative);
  html=page.processPageIncludes(n + "String_Node_Str",html,resourceName == null ? "String_Node_Str" + rt : "String_Node_Str" + resourceName,null,null);
  TextFile.stringToFile(html,page.getFolders().dstDir + n + "String_Node_Str");
  page.getEpub().registerExternal(n + "String_Node_Str");
  page.getEpub().registerExternal(n + "String_Node_Str");
  page.getEpub().registerExternal(n + "String_Node_Str");
}