Program: 24057
Project: 24057
Buggy source:
private void parseChildren(String path,org.w3c.dom.Element node,Element context) throws Exception {
  reapComments(node,context);
  List<Property> properties=getChildProperties(context.getProperty(),context.getName());
  List<org.w3c.dom.Node> processed=new ArrayList<Node>();
  for (  Property property : properties) {
    if (isAttr(property)) {
      Attr attr=node.getAttributeNode(property.getName());
      processed.add(attr);
      if (attr != null)       if (property.getName().equals("String_Node_Str"))       context.setValue(attr.getValue());
 else       context.getChildren().add(new Element(property.getName(),property,property.getType(),attr.getValue()));
    }
 else     if (property.isPrimitive() && "String_Node_Str".equals(property.getType())) {
      org.w3c.dom.Element div=XMLUtil.getNamedChild(node,property.getName());
      processed.add(div);
      XhtmlNode xhtml=new XhtmlParser().parseHtmlNode(div);
      context.getChildren().add(new Element("String_Node_Str",property,"String_Node_Str",new XhtmlComposer().compose(xhtml)));
    }
 else {
      List<org.w3c.dom.Element> children=new ArrayList<org.w3c.dom.Element>();
      XMLUtil.getNamedChildrenWithWildcard(node,property.getName(),children);
      processed.addAll(children);
      for (      org.w3c.dom.Element child : children) {
        Element n=new Element(child.getNodeName(),property);
        context.getChildren().add(n);
        if (property.isResource())         parseResource(path + "String_Node_Str" + property.getName(),child,n);
 else         parseChildren(path + "String_Node_Str" + property.getName(),child,n);
      }
    }
  }
  if (check) {
    org.w3c.dom.Element child=XMLUtil.getFirstChild(node);
    while (child != null) {
      if (!processed.contains(child))       throw new Exception("String_Node_Str" + path + "String_Node_Str"+ child.getNodeName());
      child=XMLUtil.getNextSibling(child);
    }
    NamedNodeMap am=node.getAttributes();
    for (int i=0; i < am.getLength(); i++) {
      if (!processed.contains(am.item(i)) && !am.item(i).getNodeName().startsWith("String_Node_Str"))       throw new Exception("String_Node_Str" + path + "String_Node_Str"+ am.item(i).getNodeName());
    }
  }
}

Fixed version (ground truth):
private void parseChildren(String path,org.w3c.dom.Element node,Element context) throws Exception {
  reapComments(node,context);
  List<Property> properties=getChildProperties(context.getProperty(),context.getName());
  List<org.w3c.dom.Node> processed=new ArrayList<Node>();
  for (  Property property : properties) {
    if (isAttr(property)) {
      Attr attr=node.getAttributeNode(property.getName());
      if (attr != null) {
        processed.add(attr);
        if (property.getName().equals("String_Node_Str"))         context.setValue(attr.getValue());
 else         context.getChildren().add(new Element(property.getName(),property,property.getType(),attr.getValue()));
      }
    }
 else     if (property.isPrimitive() && "String_Node_Str".equals(property.getType())) {
      org.w3c.dom.Element div=XMLUtil.getNamedChild(node,property.getName());
      processed.add(div);
      XhtmlNode xhtml=new XhtmlParser().parseHtmlNode(div);
      context.getChildren().add(new Element("String_Node_Str",property,"String_Node_Str",new XhtmlComposer().compose(xhtml)));
    }
 else {
      List<org.w3c.dom.Element> children=new ArrayList<org.w3c.dom.Element>();
      XMLUtil.getNamedChildrenWithWildcard(node,property.getName(),children);
      processed.addAll(children);
      for (      org.w3c.dom.Element child : children) {
        Element n=new Element(child.getNodeName(),property);
        context.getChildren().add(n);
        if (property.isResource())         parseResource(path + "String_Node_Str" + property.getName(),child,n);
 else         parseChildren(path + "String_Node_Str" + property.getName(),child,n);
      }
    }
  }
  if (check) {
    org.w3c.dom.Element child=XMLUtil.getFirstChild(node);
    while (child != null) {
      if (!processed.contains(child))       throw new Exception("String_Node_Str" + path + "String_Node_Str"+ child.getNodeName());
      child=XMLUtil.getNextSibling(child);
    }
    NamedNodeMap am=node.getAttributes();
    for (int i=0; i < am.getLength(); i++) {
      if (!processed.contains(am.item(i)) && !am.item(i).getNodeName().startsWith("String_Node_Str"))       throw new Exception("String_Node_Str" + path + "String_Node_Str"+ am.item(i).getNodeName());
    }
  }
}