Program: 141223
Project: 141223
Buggy source:
private void parse(final Document document) throws EoulsanException {
  for (  Element e : XMLUtils.getElementsByTagName(document,"String_Node_Str")) {
    this.name=XMLUtils.getTagValue(e,"String_Node_Str");
    this.description=XMLUtils.getTagValue(e,"String_Node_Str");
    this.prefix=XMLUtils.getTagValue(e,"String_Node_Str");
    this.oneFilePerAnalysis=Boolean.parseBoolean(XMLUtils.getTagValue(e,"String_Node_Str"));
    this.designFieldName=XMLUtils.getTagValue(e,"String_Node_Str");
    this.contentType=XMLUtils.getTagValue(e,"String_Node_Str");
    this.generatorClassName=XMLUtils.getTagValue(e,"String_Node_Str");
    this.checkerClassName=XMLUtils.getTagValue(e,"String_Node_Str");
    if (this.designFieldName != null)     this.dataTypeFromDesignFile=true;
    for (    Element generatorElement : XMLUtils.getElementsByTagName(e,"String_Node_Str")) {
      final List<String> attributeNames=XMLUtils.getAttributeNames(generatorElement);
      for (      String attributeName : attributeNames)       this.generatorParameters.add(new Parameter(attributeName,generatorElement.getAttribute(attributeName)));
    }
    final String maxFiles=XMLUtils.getTagValue(e,"String_Node_Str");
    try {
      if (maxFiles == null)       this.maxFilesCount=DEFAULT_MAX_FILES_COUNT;
 else       this.maxFilesCount=Integer.parseInt(maxFiles);
    }
 catch (    NumberFormatException exp) {
      throw new EoulsanException("String_Node_Str" + this.name + "String_Node_Str"+ maxFiles);
    }
    List<String> extensions=Utils.newArrayList();
    for (    Element e2 : XMLUtils.getElementsByTagName(document,"String_Node_Str"))     for (    Element e3 : XMLUtils.getElementsByTagName(e2,"String_Node_Str")) {
      final String defaultAttribute=e3.getAttribute("String_Node_Str");
      if (defaultAttribute != null && "String_Node_Str".equals(defaultAttribute.trim().toLowerCase()))       extensions.add(0,e3.getTextContent().trim());
 else       extensions.add(e3.getTextContent().trim());
    }
    this.extensions=new LinkedHashSet<String>(extensions).toArray(new String[0]);
  }
  if (this.name == null)   throw new EoulsanException("String_Node_Str");
  this.name=this.name.trim().toLowerCase();
  if (this.description != null)   this.description.trim();
  if (this.contentType == null || "String_Node_Str".equals(this.contentType.trim()))   this.contentType=DEFAULT_CONTENT_TYPE;
  if (this.generatorClassName != null && "String_Node_Str".equals(this.generatorClassName.trim()))   this.generatorClassName=null;
  if (this.checkerClassName != null && "String_Node_Str".equals(this.checkerClassName.trim()))   this.checkerClassName=null;
  if (this.maxFilesCount < 1 || this.maxFilesCount > 2)   throw new EoulsanException("String_Node_Str" + this.name + "String_Node_Str"+ this.maxFilesCount);
}

Fixed version (ground truth):
private void parse(final Document document) throws EoulsanException {
  for (  Element e : XMLUtils.getElementsByTagName(document,"String_Node_Str")) {
    this.name=XMLUtils.getTagValue(e,"String_Node_Str");
    this.description=XMLUtils.getTagValue(e,"String_Node_Str");
    this.prefix=XMLUtils.getTagValue(e,"String_Node_Str");
    this.oneFilePerAnalysis=Boolean.parseBoolean(XMLUtils.getTagValue(e,"String_Node_Str"));
    this.designFieldName=XMLUtils.getTagValue(e,"String_Node_Str");
    this.contentType=XMLUtils.getTagValue(e,"String_Node_Str");
    this.generatorClassName=XMLUtils.getTagValue(e,"String_Node_Str");
    this.checkerClassName=XMLUtils.getTagValue(e,"String_Node_Str");
    if (this.designFieldName != null)     this.dataTypeFromDesignFile=true;
    for (    Element generatorElement : XMLUtils.getElementsByTagName(e,"String_Node_Str")) {
      final List<String> attributeNames=XMLUtils.getAttributeNames(generatorElement);
      for (      String attributeName : attributeNames)       this.generatorParameters.add(new Parameter(attributeName,generatorElement.getAttribute(attributeName)));
    }
    final String maxFiles=XMLUtils.getTagValue(e,"String_Node_Str");
    try {
      if (maxFiles == null)       this.maxFilesCount=DEFAULT_MAX_FILES_COUNT;
 else       this.maxFilesCount=Integer.parseInt(maxFiles);
    }
 catch (    NumberFormatException exp) {
      throw new EoulsanException("String_Node_Str" + this.name + "String_Node_Str"+ maxFiles);
    }
    List<String> extensions=Utils.newArrayList();
    for (    Element e2 : XMLUtils.getElementsByTagName(document,"String_Node_Str"))     for (    Element e3 : XMLUtils.getElementsByTagName(e2,"String_Node_Str")) {
      final String defaultAttribute=e3.getAttribute("String_Node_Str");
      if (defaultAttribute != null && "String_Node_Str".equals(defaultAttribute.trim().toLowerCase()))       extensions.add(0,e3.getTextContent().trim());
 else       extensions.add(e3.getTextContent().trim());
    }
    this.extensions=new LinkedHashSet<String>(extensions).toArray(new String[0]);
  }
  if (this.name == null)   throw new EoulsanException("String_Node_Str");
  this.name=this.name.trim().toLowerCase();
  if (this.description != null)   this.description=this.description.trim();
  if (this.contentType == null || "String_Node_Str".equals(this.contentType.trim()))   this.contentType=DEFAULT_CONTENT_TYPE;
  if (this.generatorClassName != null && "String_Node_Str".equals(this.generatorClassName.trim()))   this.generatorClassName=null;
  if (this.checkerClassName != null && "String_Node_Str".equals(this.checkerClassName.trim()))   this.checkerClassName=null;
  if (this.maxFilesCount < 1 || this.maxFilesCount > 2)   throw new EoulsanException("String_Node_Str" + this.name + "String_Node_Str"+ this.maxFilesCount);
}