Program: 154137
Project: 154137
Buggy source:
/** 
 * This processes the options file, builds the target and loops through the actions (attach, trim, merge) which are child elements of the root taxonomy element
 * @throws IOException
 * @throws ParserConfigurationException
 * @throws SAXException
 */
public void build() throws IOException, ParserConfigurationException, SAXException {
  NodeList parseList=parseXMLOptionsFile();
  if (parseList.getLength() != 1) {
    logger.fatal("String_Node_Str" + optionsFile.getCanonicalPath());
    return;
  }
  final Node taxonomyRoot=parseList.item(0);
  final String targetStr=getAttribute(taxonomyRoot,TARGETTAXONOMYSTR);
  final String targetFormatStr=getAttribute(taxonomyRoot,TARGETFORMATSTR);
  final String targetRootStr=getAttribute(taxonomyRoot,TARGETROOTSTR);
  final String targetPrefixStr=getAttribute(taxonomyRoot,PREFIXITEMSTR);
  final String targetFilterPrefixStr=getAttribute(taxonomyRoot,FILTERPREFIXITEMSTR);
  final TaxonStore target=getStore(targetStr,targetPrefixStr,targetFormatStr);
  logger.info("String_Node_Str" + targetStr + "String_Node_Str"+ targetFormatStr+ "String_Node_Str");
  NodeList actions=taxonomyRoot.getChildNodes();
  for (int i=0; i < actions.getLength(); i++) {
    processChildNode(actions.item(i),target,targetRootStr,targetFormatStr,targetPrefixStr);
  }
  for (  String reportStr : target.countTerms()) {
    logger.info(reportStr);
  }
  saveTarget(targetFormatStr,targetFilterPrefixStr,target);
}

Fixed version (ground truth):
/** 
 * This processes the options file, builds the target and loops through the actions (attach, trim, merge) which are child elements of the root taxonomy element
 * @throws IOException
 * @throws ParserConfigurationException
 * @throws SAXException
 */
public void build() throws IOException, ParserConfigurationException, SAXException {
  NodeList parseList=parseXMLOptionsFile();
  if (parseList.getLength() != 1) {
    logger.fatal("String_Node_Str" + optionsFile.getCanonicalPath());
    return;
  }
  final Node taxonomyRoot=parseList.item(0);
  final String targetStr=getAttribute(taxonomyRoot,TARGETTAXONOMYSTR);
  final String targetFormatStr=getAttribute(taxonomyRoot,TARGETFORMATSTR);
  final String targetRootStr=getAttribute(taxonomyRoot,TARGETROOTSTR);
  final String targetPrefixStr=getAttribute(taxonomyRoot,PREFIXITEMSTR);
  final String targetFilterPrefixStr=getAttribute(taxonomyRoot,FILTERPREFIXITEMSTR);
  final TaxonStore target=getStore(targetStr,targetPrefixStr,targetFormatStr);
  logger.info("String_Node_Str" + targetStr + "String_Node_Str"+ targetFormatStr+ "String_Node_Str");
  NodeList actions=taxonomyRoot.getChildNodes();
  for (int i=0; i < actions.getLength(); i++) {
    logger.info("String_Node_Str" + target.getTermbyName("String_Node_Str") + "String_Node_Str"+ target.getTermbyName("String_Node_Str"));
    processChildNode(actions.item(i),target,targetRootStr,targetFormatStr,targetPrefixStr);
    logger.info("String_Node_Str" + target.getTermbyName("String_Node_Str") + "String_Node_Str"+ target.getTermbyName("String_Node_Str"));
  }
  for (  String reportStr : target.countTerms()) {
    logger.info(reportStr);
  }
  saveTarget(targetFormatStr,targetFilterPrefixStr,target);
}