Program: 24128
Project: 24128
Buggy source:
private ValueSet buildV2ValuesetVersioned(String id,String version,Element e) throws Exception {
  StringBuilder s=new StringBuilder();
  ValueSet vs=new ValueSet();
  vs.setIdentifier("String_Node_Str" + id + "String_Node_Str"+ version);
  vs.setName("String_Node_Str" + id + "String_Node_Str"+ version);
  vs.setPublisher("String_Node_Str");
  vs.getTelecom().add(Factory.newContactPoint(ContactPointSystem.URL,"String_Node_Str"));
  vs.setStatus(ValuesetStatus.ACTIVE);
  vs.setDate(new DateAndTime("String_Node_Str"));
  ValueSetDefineComponent def=new ValueSet.ValueSetDefineComponent();
  vs.setDefine(def);
  def.setCaseSensitive(true);
  def.setSystem("String_Node_Str" + id + "String_Node_Str"+ version);
  String desc="String_Node_Str";
  String minlim=null;
  String maxlim=null;
  Element c=XMLUtil.getFirstChild(e);
  Map<String,String> codes=new HashMap<String,String>();
  while (c != null) {
    if (version.equals(c.getAttribute("String_Node_Str"))) {
      if (minlim == null)       minlim=c.getAttribute("String_Node_Str");
      maxlim=c.getAttribute("String_Node_Str");
      desc=c.getAttribute("String_Node_Str");
      vs.setDescription("String_Node_Str" + id + "String_Node_Str"+ version+ "String_Node_Str"+ desc+ "String_Node_Str");
      Element g=XMLUtil.getFirstChild(c);
      while (g != null) {
        codes.put(g.getAttribute("String_Node_Str"),g.getAttribute("String_Node_Str"));
        g=XMLUtil.getNextSibling(g);
      }
    }
    c=XMLUtil.getNextSibling(c);
  }
  s.append("String_Node_Str" + Utilities.escapeXml(desc) + "String_Node_Str");
  s.append("String_Node_Str");
  s.append("String_Node_Str");
  List<String> cs=new ArrayList<String>();
  cs.addAll(codes.keySet());
  Collections.sort(cs);
  for (  String cd : cs) {
    String min=null;
    String max=null;
    c=XMLUtil.getFirstChild(e);
    while (c != null) {
      if (version.equals(c.getAttribute("String_Node_Str"))) {
        Element g=XMLUtil.getFirstChild(c);
        while (g != null) {
          if (cd.equals(g.getAttribute("String_Node_Str"))) {
            if (min == null)             min=c.getAttribute("String_Node_Str");
            max=c.getAttribute("String_Node_Str");
          }
          g=XMLUtil.getNextSibling(g);
        }
      }
      c=XMLUtil.getNextSibling(c);
    }
    String ver=(minlim.equals(min) ? "String_Node_Str" + minlim : "String_Node_Str" + min) + (maxlim.equals(max) ? "String_Node_Str" : "String_Node_Str" + max);
    ConceptDefinitionComponent concept=new ValueSet.ConceptDefinitionComponent();
    concept.setCode(cd);
    concept.setDisplay(codes.get(cd));
    def.getConcept().add(concept);
    s.append("String_Node_Str" + Utilities.escapeXml(cd) + "String_Node_Str"+ Utilities.escapeXml(Utilities.nmtokenize(cd))+ "String_Node_Str"+ Utilities.escapeXml(codes.get(cd))+ "String_Node_Str"+ ver+ "String_Node_Str");
  }
  s.append("String_Node_Str");
  vs.setText(new Narrative());
  vs.getText().setStatus(NarrativeStatus.ADDITIONAL);
  vs.getText().setDiv(new XhtmlParser().parse("String_Node_Str" + s.toString() + "String_Node_Str","String_Node_Str").getElement("String_Node_Str"));
  new ValueSetValidator(page.getWorkerContext()).validate("String_Node_Str" + id,vs,false,true);
  return vs;
}

Fixed version (ground truth):
private ValueSet buildV2ValuesetVersioned(String id,String version,Element e) throws Exception {
  StringBuilder s=new StringBuilder();
  ValueSet vs=new ValueSet();
  vs.setIdentifier("String_Node_Str" + id + "String_Node_Str"+ version);
  vs.setName("String_Node_Str" + id + "String_Node_Str"+ version);
  vs.setPublisher("String_Node_Str");
  vs.getTelecom().add(Factory.newContactPoint(ContactPointSystem.URL,"String_Node_Str"));
  vs.setStatus(ValuesetStatus.ACTIVE);
  vs.setDate(new DateAndTime("String_Node_Str"));
  ValueSetDefineComponent def=new ValueSet.ValueSetDefineComponent();
  vs.setDefine(def);
  def.setCaseSensitive(true);
  def.setSystem("String_Node_Str" + id + "String_Node_Str"+ version);
  String desc="String_Node_Str";
  String minlim=null;
  String maxlim=null;
  Element c=XMLUtil.getFirstChild(e);
  Map<String,String> codes=new HashMap<String,String>();
  while (c != null) {
    if (version.equals(c.getAttribute("String_Node_Str"))) {
      if (minlim == null)       minlim=c.getAttribute("String_Node_Str");
      maxlim=c.getAttribute("String_Node_Str");
      desc=c.getAttribute("String_Node_Str");
      vs.setDescription("String_Node_Str" + id + "String_Node_Str"+ version+ "String_Node_Str"+ desc+ "String_Node_Str");
      Element g=XMLUtil.getFirstChild(c);
      while (g != null) {
        codes.put(g.getAttribute("String_Node_Str"),g.getAttribute("String_Node_Str"));
        g=XMLUtil.getNextSibling(g);
      }
    }
    c=XMLUtil.getNextSibling(c);
  }
  s.append("String_Node_Str").append(Utilities.escapeXml(desc)).append("String_Node_Str");
  s.append("String_Node_Str");
  s.append("String_Node_Str");
  List<String> cs=new ArrayList<String>();
  cs.addAll(codes.keySet());
  Collections.sort(cs);
  for (  String cd : cs) {
    String min=null;
    String max=null;
    c=XMLUtil.getFirstChild(e);
    while (c != null) {
      if (version.equals(c.getAttribute("String_Node_Str"))) {
        Element g=XMLUtil.getFirstChild(c);
        while (g != null) {
          if (cd.equals(g.getAttribute("String_Node_Str"))) {
            if (min == null)             min=c.getAttribute("String_Node_Str");
            max=c.getAttribute("String_Node_Str");
          }
          g=XMLUtil.getNextSibling(g);
        }
      }
      c=XMLUtil.getNextSibling(c);
    }
    String ver=(minlim.equals(min) ? "String_Node_Str" + minlim : "String_Node_Str" + min) + (maxlim.equals(max) ? "String_Node_Str" : "String_Node_Str" + max);
    ConceptDefinitionComponent concept=new ValueSet.ConceptDefinitionComponent();
    concept.setCode(cd);
    concept.setDisplay(codes.get(cd));
    def.getConcept().add(concept);
    s.append("String_Node_Str" + Utilities.escapeXml(cd) + "String_Node_Str"+ Utilities.escapeXml(Utilities.nmtokenize(cd))+ "String_Node_Str"+ Utilities.escapeXml(codes.get(cd))+ "String_Node_Str"+ ver+ "String_Node_Str");
  }
  s.append("String_Node_Str");
  vs.setText(new Narrative());
  vs.getText().setStatus(NarrativeStatus.ADDITIONAL);
  vs.getText().setDiv(new XhtmlParser().parse("String_Node_Str" + s.toString() + "String_Node_Str","String_Node_Str").getElement("String_Node_Str"));
  new ValueSetValidator(page.getWorkerContext()).validate("String_Node_Str" + id,vs,false,true);
  return vs;
}