Program: 17453
Project: 17453
Buggy source:
public CFPartitionScanner(){
  IToken doctype=new Token(DOCTYPE);
  IToken cfComment=new Token(CF_COMMENT);
  IToken htmComment=new Token(HTM_COMMENT);
  IToken cfscript=new Token(CF_SCRIPT);
  IToken cfexpression=new Token(CF_EXPRESSION);
  IToken jscript=new Token(J_SCRIPT);
  IToken css=new Token(CSS);
  IToken sql=new Token(SQL);
  IToken unktag=new Token(UNK_TAG);
  List rules=new ArrayList();
  rules.add(new NestableMultiLineRule("String_Node_Str","String_Node_Str",cfComment));
  rules.add(new NestableMultiLineRule("String_Node_Str","String_Node_Str",htmComment));
  rules.add(new MultiLineRule("String_Node_Str","String_Node_Str",doctype));
  rules.add(new NamedTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_SET_STATEMENT));
  rules.add(new NamedTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_BOOLEAN_STATEMENT));
  rules.add(new NamedTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_BOOLEAN_STATEMENT));
  rules.add(new NamedTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_RETURN_STATEMENT));
  SyntaxDictionary sd=DictionaryManager.getDictionary(DictionaryManager.CFDIC);
  Tag tg=null;
  try {
    Set elements=((SyntaxDictionaryInterface)sd).getAllElements();
    Iterator it=elements.iterator();
    while (it.hasNext()) {
      String ename=(String)it.next();
      tg=sd.getTag(ename);
      rules.add(new NamedTagRule("String_Node_Str" + ename,"String_Node_Str",CF_START_TAG,CF_TAG_ATTRIBS));
      rules.add(new NamedTagRule("String_Node_Str" + ename,"String_Node_Str",CF_END_TAG,CF_END_TAG));
    }
  }
 catch (  Exception e) {
    e.printStackTrace(System.err);
  }
  rules.add(new CustomTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_TAG_ATTRIBS));
  rules.add(new CustomTagRule("String_Node_Str","String_Node_Str",CF_END_TAG,CF_END_TAG));
  sd=DictionaryManager.getDictionary(DictionaryManager.HTDIC);
  try {
    Set elements=((SyntaxDictionaryInterface)sd).getAllElements();
    String startTokenType=HTM_START_TAG;
    String endTokenType=HTM_END_TAG;
    Iterator it=elements.iterator();
    while (it.hasNext()) {
      String ename=(String)it.next();
      tg=sd.getTag(ename);
      if (tg.isTableTag()) {
        startTokenType=TABLE_START_TAG;
        endTokenType=TABLE_END_TAG;
      }
 else       if (tg.isFormTag()) {
        startTokenType=FORM_START_TAG;
        endTokenType=FORM_END_TAG;
      }
 else {
        startTokenType=HTM_START_TAG;
        endTokenType=HTM_END_TAG;
      }
      rules.add(new NamedTagRule("String_Node_Str" + ename,"String_Node_Str",startTokenType,HTM_TAG_ATTRIBS));
      rules.add(new NamedTagRule("String_Node_Str" + ename,"String_Node_Str",endTokenType,endTokenType));
    }
  }
 catch (  Exception e) {
    e.printStackTrace(System.err);
  }
  rules.add(new TagRule(unktag));
  IPredicateRule[] rulearry=new IPredicateRule[rules.size()];
  rules.toArray(rulearry);
  setPredicateRules(rulearry);
}

Fixed version (ground truth):
public CFPartitionScanner(){
  IToken doctype=new Token(DOCTYPE);
  IToken cfComment=new Token(CF_COMMENT);
  IToken htmComment=new Token(HTM_COMMENT);
  IToken cfscript=new Token(CF_SCRIPT);
  IToken cfexpression=new Token(CF_EXPRESSION);
  IToken jscript=new Token(J_SCRIPT);
  IToken css=new Token(CSS);
  IToken sql=new Token(SQL);
  IToken unktag=new Token(UNK_TAG);
  List rules=new ArrayList();
  rules.add(new NestableMultiLineRule("String_Node_Str","String_Node_Str",cfComment));
  rules.add(new NestableMultiLineRule("String_Node_Str","String_Node_Str",htmComment));
  rules.add(new MultiLineRule("String_Node_Str","String_Node_Str",doctype));
  rules.add(new NamedTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_SET_STATEMENT));
  rules.add(new NamedTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_BOOLEAN_STATEMENT));
  rules.add(new NamedTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_BOOLEAN_STATEMENT));
  rules.add(new NamedTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_RETURN_STATEMENT));
  SyntaxDictionary sd=DictionaryManager.getDictionary(DictionaryManager.CFDIC);
  Tag tg=null;
  try {
    Set elements=((SyntaxDictionaryInterface)sd).getAllElements();
    Iterator it=elements.iterator();
    while (it.hasNext()) {
      String ename=(String)it.next();
      tg=sd.getTag(ename);
      rules.add(new NamedTagRule("String_Node_Str" + ename,"String_Node_Str",CF_START_TAG,CF_TAG_ATTRIBS));
      rules.add(new NamedTagRule("String_Node_Str" + ename,"String_Node_Str",CF_END_TAG,CF_END_TAG));
    }
  }
 catch (  Exception e) {
    e.printStackTrace(System.err);
  }
  rules.add(new CustomTagRule("String_Node_Str","String_Node_Str",CF_START_TAG,CF_TAG_ATTRIBS));
  rules.add(new CustomTagRule("String_Node_Str","String_Node_Str",CF_END_TAG,CF_END_TAG));
  sd=DictionaryManager.getDictionary(DictionaryManager.HTDIC);
  try {
    Set elements=((SyntaxDictionaryInterface)sd).getAllElements();
    String startTokenType=HTM_START_TAG;
    String endTokenType=HTM_END_TAG;
    String midTokenType=HTM_TAG_ATTRIBS;
    Iterator it=elements.iterator();
    while (it.hasNext()) {
      String ename=(String)it.next();
      tg=sd.getTag(ename);
      if (tg.isTableTag()) {
        startTokenType=TABLE_START_TAG;
        midTokenType=TABLE_TAG_ATTRIBS;
        endTokenType=TABLE_END_TAG;
      }
 else       if (tg.isFormTag()) {
        startTokenType=FORM_START_TAG;
        midTokenType=FORM_TAG_ATTRIBS;
        endTokenType=FORM_END_TAG;
      }
 else {
        startTokenType=HTM_START_TAG;
        midTokenType=HTM_TAG_ATTRIBS;
        endTokenType=HTM_END_TAG;
      }
      rules.add(new NamedTagRule("String_Node_Str" + ename,"String_Node_Str",startTokenType,midTokenType));
      rules.add(new NamedTagRule("String_Node_Str" + ename,"String_Node_Str",endTokenType,endTokenType));
    }
  }
 catch (  Exception e) {
    e.printStackTrace(System.err);
  }
  rules.add(new TagRule(unktag));
  IPredicateRule[] rulearry=new IPredicateRule[rules.size()];
  rules.toArray(rulearry);
  setPredicateRules(rulearry);
}