Program: 73852
Project: 73852
Buggy source:
/** 
 * Called each time the SAX parser sees the beginning of an element
 * @param uri The Namespace Uniform Resource Identifier(URI)
 * @param name Is the elements local name
 * @param qName Is the XML 1.0 name 
 */
public void startElement(String uri,String name,String qName,Attributes atts){
  String tempString;
  if ("String_Node_Str".equals(uri)) {
    if ("String_Node_Str".equals(qName) || "String_Node_Str".equals(qName)) {
      _startVar=true;
      if ("String_Node_Str".equals(qName)) {
        _toDefuzzyify=_currentIndex;
      }
      int index=atts.getIndex("String_Node_Str");
      if ("String_Node_Str".equals(qName)) {
        _fuzzyVar.name=atts.getValue(index);
      }
      _linguisticVarArray.add(new LinguisticVariable(atts.getValue(index)));
    }
    if ("String_Node_Str".equals(qName)) {
      if (_startVar == true) {
        String localName=atts.getValue(0);
        StringTokenizer st=new StringTokenizer(atts.getValue(1),"String_Node_Str");
        double a=Double.valueOf(st.nextToken().trim()).doubleValue();
        double b=Double.valueOf(st.nextToken().trim()).doubleValue();
        double c=Double.valueOf(st.nextToken().trim()).doubleValue();
        double d=Double.valueOf(st.nextToken().trim()).doubleValue();
        (_linguisticVarArray.get(_currentIndex)).add(localName,a,b,c,d);
        tempString=localName + "String_Node_Str" + (a + d) / 2;
        _fuzzyVar.termNames.add(tempString);
      }
    }
    if ("String_Node_Str".equals(qName)) {
      _myRules.add(atts.getValue(1));
    }
  }
 else {
    if (_debugging) {
      System.out.println("String_Node_Str" + uri + "String_Node_Str"+ name);
    }
  }
}

Fixed version (ground truth):
/** 
 * Called each time the SAX parser sees the beginning of an element.
 * @param uri The Namespace Uniform Resource Identifier(URI)
 * @param name Is the elements local name
 * @param qName Is the XML 1.0 name 
 * @param atts An Attributes object
 */
public void startElement(String uri,String name,String qName,Attributes atts){
  String tempString;
  if ("String_Node_Str".equals(uri)) {
    if ("String_Node_Str".equals(qName) || "String_Node_Str".equals(qName)) {
      _startVar=true;
      if ("String_Node_Str".equals(qName)) {
        _toDefuzzyify=_currentIndex;
      }
      int index=atts.getIndex("String_Node_Str");
      if ("String_Node_Str".equals(qName)) {
        _fuzzyVar.name=atts.getValue(index);
      }
      _linguisticVarArray.add(new LinguisticVariable(atts.getValue(index)));
    }
    if ("String_Node_Str".equals(qName)) {
      if (_startVar == true) {
        String localName=atts.getValue(0);
        StringTokenizer st=new StringTokenizer(atts.getValue(1),"String_Node_Str");
        double a=Double.valueOf(st.nextToken().trim()).doubleValue();
        double b=Double.valueOf(st.nextToken().trim()).doubleValue();
        double c=Double.valueOf(st.nextToken().trim()).doubleValue();
        double d=Double.valueOf(st.nextToken().trim()).doubleValue();
        (_linguisticVarArray.get(_currentIndex)).add(localName,a,b,c,d);
        tempString=localName + "String_Node_Str" + (a + d) / 2;
        _fuzzyVar.termNames.add(tempString);
      }
    }
    if ("String_Node_Str".equals(qName)) {
      _myRules.add(atts.getValue(1));
    }
  }
 else {
    if (_debugging) {
      System.out.println("String_Node_Str" + uri + "String_Node_Str"+ name);
    }
  }
}