Program: 24674
Project: 24674
Buggy source:
/** 
 * Process the attributes associated with an XML source text node. <br><br> Sets internal flags and variables used during text processing based on any special attributes encountered in the given attribute list. <br><br>
 * @param atts  The attribute list to process. <br><br>
 * @.notes This method is called to process a list of attributes associated with a node. These attributes are typically inserted into the XML source text by an XSL prefilter. <br><br> Since many of these attributes nest (i.e., values for child nodes temporarily override parent attributes), the current state of the attributes is maintained on a "section info" stack. See the {@link XMLTextProcessor#section section} member for moredetails. <br><br> For a description of node attributes handled by this method, see the {@link XMLTextProcessor} class description. <br><br>
 */
private void processNodeAttributes(Attributes atts){
  String valueStr;
  String sectionTypeStr=section.sectionType();
  float wordBoost=section.wordBoost();
  int sentenceBump=section.sentenceBump();
  int indexFlag=SectionInfo.parentIndex;
  int spellFlag=SectionInfo.parentSpell;
  int sectionBump=0;
  String subDocumentStr="String_Node_Str";
  LinkedList metaInfo=null;
  for (int i=0; i < atts.getLength(); i++) {
    if (!xtfUri.equals(atts.getURI(i)))     continue;
    String attName=atts.getLocalName(i);
    if (attName.equalsIgnoreCase("String_Node_Str"))     sectionTypeStr=atts.getValue(i);
 else     if (attName.equalsIgnoreCase("String_Node_Str"))     sectionTypeStr+="String_Node_Str" + atts.getValue(i);
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      sectionBump=Integer.parseInt(valueStr);
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      wordBoost=Float.parseFloat(valueStr);
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      sentenceBump=Integer.parseInt(valueStr);
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      boolean defaultNoIndexFlag=(indexFlag == SectionInfo.index) ? false : true;
      valueStr=atts.getValue(i);
      indexFlag=trueOrFalse(valueStr,defaultNoIndexFlag) ? SectionInfo.noIndex : SectionInfo.index;
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      boolean defaultIndexFlag=(section.indexFlag() == SectionInfo.index) ? true : false;
      valueStr=atts.getValue(i);
      indexFlag=trueOrFalse(valueStr,defaultIndexFlag) ? SectionInfo.index : SectionInfo.noIndex;
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      if (trueOrFalse(valueStr,false)) {
        forceNewChunk(section.peek());
        chunkStartNode=-1;
        chunkWordOffset=-1;
      }
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      float newBoost=Float.parseFloat(valueStr);
      if (wordBoost != newBoost) {
        forceNewChunk(section.peek());
        chunkStartNode=-1;
        chunkWordOffset=-1;
        wordBoost=newBoost;
      }
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      boolean defaultSpellFlag=(section.spellFlag() == SectionInfo.spell) ? true : false;
      valueStr=atts.getValue(i);
      spellFlag=trueOrFalse(valueStr,defaultSpellFlag) ? SectionInfo.spell : SectionInfo.noSpell;
      if (spellFlag != section.spellFlag()) {
        forceNewChunk(section.peek());
        chunkStartNode=-1;
        chunkWordOffset=-1;
      }
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      subDocumentStr=atts.getValue(i);
      if (subDocumentStr != section.subDocument()) {
        forceNewChunk(section.peek());
        if (chunkCount > 0)         saveDocInfo(section.peek());
        chunkStartNode=-1;
        chunkWordOffset=-1;
        metaInfo=(LinkedList)section.metaInfo().clone();
      }
    }
 else {
      Trace.tab();
      Trace.warning("String_Node_Str" + atts.getQName(i) + "String_Node_Str"+ atts.getValue(i)+ "String_Node_Str");
      Trace.untab();
    }
  }
  section.push(indexFlag,sectionTypeStr,sectionBump,wordBoost,sentenceBump,spellFlag,subDocumentStr,metaInfo);
}

Fixed version (ground truth):
/** 
 * Process the attributes associated with an XML source text node. <br><br> Sets internal flags and variables used during text processing based on any special attributes encountered in the given attribute list. <br><br>
 * @param atts  The attribute list to process. <br><br>
 * @.notes This method is called to process a list of attributes associated with a node. These attributes are typically inserted into the XML source text by an XSL prefilter. <br><br> Since many of these attributes nest (i.e., values for child nodes temporarily override parent attributes), the current state of the attributes is maintained on a "section info" stack. See the {@link XMLTextProcessor#section section} member for moredetails. <br><br> For a description of node attributes handled by this method, see the {@link XMLTextProcessor} class description. <br><br>
 */
private void processNodeAttributes(Attributes atts){
  String valueStr;
  String sectionTypeStr=section.sectionType();
  float wordBoost=section.wordBoost();
  int sentenceBump=section.sentenceBump();
  int indexFlag=SectionInfo.parentIndex;
  int spellFlag=SectionInfo.parentSpell;
  int sectionBump=0;
  String subDocumentStr="String_Node_Str";
  LinkedList metaInfo=null;
  for (int i=0; i < atts.getLength(); i++) {
    if (!xtfUri.equals(atts.getURI(i)))     continue;
    String attName=atts.getLocalName(i);
    if (attName.equalsIgnoreCase("String_Node_Str"))     sectionTypeStr=atts.getValue(i);
 else     if (attName.equalsIgnoreCase("String_Node_Str"))     sectionTypeStr+="String_Node_Str" + atts.getValue(i);
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      sectionBump=Integer.parseInt(valueStr);
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      wordBoost=Float.parseFloat(valueStr);
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      sentenceBump=Integer.parseInt(valueStr);
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      boolean defaultNoIndexFlag=(indexFlag == SectionInfo.index) ? false : true;
      valueStr=atts.getValue(i);
      indexFlag=trueOrFalse(valueStr,defaultNoIndexFlag) ? SectionInfo.noIndex : SectionInfo.index;
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      boolean defaultIndexFlag=(section.indexFlag() == SectionInfo.index) ? true : false;
      valueStr=atts.getValue(i);
      indexFlag=trueOrFalse(valueStr,defaultIndexFlag) ? SectionInfo.index : SectionInfo.noIndex;
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      if (trueOrFalse(valueStr,false)) {
        forceNewChunk(section.peek());
        chunkStartNode=-1;
        chunkWordOffset=-1;
      }
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      valueStr=atts.getValue(i);
      float newBoost=Float.parseFloat(valueStr);
      if (wordBoost != newBoost) {
        forceNewChunk(section.peek());
        chunkStartNode=-1;
        chunkWordOffset=-1;
        wordBoost=newBoost;
      }
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      boolean defaultSpellFlag=(section.spellFlag() == SectionInfo.spell) ? true : false;
      valueStr=atts.getValue(i);
      spellFlag=trueOrFalse(valueStr,defaultSpellFlag) ? SectionInfo.spell : SectionInfo.noSpell;
      if (spellFlag != section.spellFlag()) {
        forceNewChunk(section.peek());
        chunkStartNode=-1;
        chunkWordOffset=-1;
      }
    }
 else     if (attName.equalsIgnoreCase("String_Node_Str")) {
      subDocumentStr=atts.getValue(i);
      if (subDocumentStr != section.subDocument()) {
        forceNewChunk(section.peek());
        if (docWordCount > 0)         saveDocInfo(section.peek());
        chunkStartNode=-1;
        chunkWordOffset=-1;
        metaInfo=(LinkedList)section.metaInfo().clone();
      }
    }
 else {
      Trace.tab();
      Trace.warning("String_Node_Str" + atts.getQName(i) + "String_Node_Str"+ atts.getValue(i)+ "String_Node_Str");
      Trace.untab();
    }
  }
  section.push(indexFlag,sectionTypeStr,sectionBump,wordBoost,sentenceBump,spellFlag,subDocumentStr,metaInfo);
}