Program: 12360
Project: 12360
Buggy source:
public static JATEDocument loadACLRDTECDocument(InputStream fileInputStream) throws JATEException {
  SAXParserFactory factory=SAXParserFactory.newInstance();
  SAXParser saxParser=null;
  JATEDocument jateDocument=null;
  try {
    saxParser=factory.newSAXParser();
    StringBuffer paperParagraphs=new StringBuffer();
    StringBuffer paperId=new StringBuffer();
    StringBuffer paperTitle=new StringBuffer();
    DefaultHandler handler=new DefaultHandler(){
      boolean paper=false;
      boolean title=false;
      boolean section=false;
      boolean sectionTitle=false;
      boolean paragraph=false;
      boolean reference=false;
      public void startElement(      String uri,      String localName,      String qName,      org.xml.sax.Attributes attributes) throws SAXException {
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          paper=true;
          paperId.append(attributes.getValue("String_Node_Str"));
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          title=true;
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          section=true;
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          sectionTitle=true;
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          paragraph=true;
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          reference=true;
        }
      }
      public void endElement(      String uri,      String localName,      String qName) throws SAXException {
      }
      public void characters(      char ch[],      int start,      int length) throws SAXException {
        if (paper) {
          paper=false;
        }
        if (title) {
          title=false;
          if (!reference) {
            paperTitle.append(new String(ch,start,length)).append("String_Node_Str");
          }
          reference=false;
        }
        if (section) {
          section=false;
        }
        if (sectionTitle) {
          sectionTitle=false;
        }
        if (paragraph) {
          paragraph=false;
          paperParagraphs.append(new String(ch,start,length));
        }
      }
    }
;
    saxParser.parse(fileInputStream,handler);
    StringBuffer fullText=new StringBuffer();
    fullText.append(paperTitle).append("String_Node_Str").append(paperParagraphs);
    String normalizedText=Normalizer.normalize(fullText.toString(),Normalizer.Form.NFD);
    String cleanedText=cleanText(normalizedText);
    jateDocument=new JATEDocument(paperId.toString());
    jateDocument.setContent(cleanedText);
  }
 catch (  ParserConfigurationException e) {
    throw new JATEException("String_Node_Str" + e.toString());
  }
catch (  SAXException e) {
    throw new JATEException("String_Node_Str" + e.toString());
  }
catch (  IOException ioe) {
    throw new JATEException("String_Node_Str" + ioe.toString());
  }
  return jateDocument;
}

Fixed version (ground truth):
public static JATEDocument loadACLRDTECDocument(InputStream fileInputStream) throws JATEException {
  SAXParserFactory factory=SAXParserFactory.newInstance();
  SAXParser saxParser=null;
  JATEDocument jateDocument=null;
  try {
    saxParser=factory.newSAXParser();
    StringBuffer paperParagraphs=new StringBuffer();
    StringBuffer paperId=new StringBuffer();
    StringBuffer paperTitle=new StringBuffer();
    DefaultHandler handler=new DefaultHandler(){
      boolean paper=false;
      boolean title=false;
      boolean section=false;
      boolean sectionTitle=false;
      boolean paragraph=false;
      boolean reference=false;
      public void startElement(      String uri,      String localName,      String qName,      org.xml.sax.Attributes attributes) throws SAXException {
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          paper=true;
          paperId.append(attributes.getValue("String_Node_Str"));
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          title=true;
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          section=true;
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          sectionTitle=true;
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          paragraph=true;
        }
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          reference=true;
        }
      }
      public void endElement(      String uri,      String localName,      String qName) throws SAXException {
        if (qName.equalsIgnoreCase("String_Node_Str")) {
          paragraph=false;
        }
      }
      public void characters(      char ch[],      int start,      int length) throws SAXException {
        if (paper) {
          paper=false;
        }
        if (title) {
          title=false;
          if (!reference) {
            paperTitle.append(new String(ch,start,length)).append("String_Node_Str");
          }
          reference=false;
        }
        if (section) {
          section=false;
        }
        if (sectionTitle) {
          sectionTitle=false;
        }
        if (paragraph) {
          String paragraph=new String(ch,start,length);
          paperParagraphs.append(paragraph);
        }
      }
    }
;
    saxParser.parse(fileInputStream,handler);
    StringBuffer fullText=new StringBuffer();
    fullText.append(paperTitle).append("String_Node_Str").append(paperParagraphs);
    String normalizedText=Normalizer.normalize(fullText.toString(),Normalizer.Form.NFD);
    String cleanedText=cleanText(normalizedText);
    jateDocument=new JATEDocument(paperId.toString());
    jateDocument.setContent(cleanedText);
  }
 catch (  ParserConfigurationException e) {
    throw new JATEException("String_Node_Str" + e.toString());
  }
catch (  SAXException e) {
    throw new JATEException("String_Node_Str" + e.toString());
  }
catch (  IOException ioe) {
    throw new JATEException("String_Node_Str" + ioe.toString());
  }
  return jateDocument;
}