Program: 131599
Project: 131599
Buggy source:
public Set<String> getArgumentFeatures(int pidx,int aidx,Set<String> suffixes,CoNLL09Sentence sent,Set<String> feats,boolean isTrain){
  CoNLL09Token pred=sent.get(pidx);
  CoNLL09Token arg=sent.get(aidx);
  String predForm=decideForm(pred.getForm(),pidx);
  String argForm=decideForm(arg.getForm(),aidx);
  String predPos=pred.getPos();
  String argPos=arg.getPos();
  String dir;
  int dist=Math.abs(aidx - pidx);
  if (aidx > pidx)   dir="String_Node_Str";
 else   if (aidx < pidx)   dir="String_Node_Str";
 else   dir="String_Node_Str";
  Set<String> instFeats=new HashSet<String>();
  instFeats.add("String_Node_Str" + predForm + "String_Node_Str"+ argForm+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ argPos+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predForm + "String_Node_Str"+ argPos+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ argForm+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predForm + "String_Node_Str"+ argForm+ "String_Node_Str"+ predPos+ "String_Node_Str"+ argPos+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ argPos+ "String_Node_Str"+ dist+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ argPos+ "String_Node_Str"+ dir+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ dist+ "String_Node_Str"+ dir+ "String_Node_Str");
  instFeats.add("String_Node_Str" + argPos + "String_Node_Str"+ dist+ "String_Node_Str"+ dir+ "String_Node_Str");
  instFeats.add("String_Node_Str" + sent.size());
  instFeats.add("String_Node_Str" + dir);
  instFeats.add("String_Node_Str" + dist);
  instFeats.add("String_Node_Str" + dir + dist);
  instFeats.add("String_Node_Str" + predForm + "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str");
  instFeats.add("String_Node_Str" + argForm + "String_Node_Str");
  instFeats.add("String_Node_Str" + argPos + "String_Node_Str");
  for (  String feat : instFeats) {
    if (isTrain || allFeatures.contains(feat)) {
      if (isTrain) {
        allFeatures.add(feat);
      }
      for (      String suf : suffixes) {
        feats.add(feat + suf);
      }
    }
  }
  return feats;
}

Fixed version (ground truth):
public Set<String> getArgumentFeatures(int pidx,int aidx,Set<String> suffixes,CoNLL09Sentence sent,Set<String> feats,boolean isTrain){
  CoNLL09Token pred=sent.get(pidx);
  CoNLL09Token arg=sent.get(aidx);
  String predForm=decideForm(pred.getForm(),pidx);
  String argForm=decideForm(arg.getForm(),aidx);
  String predPos=pred.getPos();
  String argPos=arg.getPos();
  if (!goldHead) {
    predPos=pred.getPpos();
    argPos=arg.getPpos();
  }
  String dir;
  int dist=Math.abs(aidx - pidx);
  if (aidx > pidx)   dir="String_Node_Str";
 else   if (aidx < pidx)   dir="String_Node_Str";
 else   dir="String_Node_Str";
  Set<String> instFeats=new HashSet<String>();
  instFeats.add("String_Node_Str" + predForm + "String_Node_Str"+ argForm+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ argPos+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predForm + "String_Node_Str"+ argPos+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ argForm+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predForm + "String_Node_Str"+ argForm+ "String_Node_Str"+ predPos+ "String_Node_Str"+ argPos+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ argPos+ "String_Node_Str"+ dist+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ argPos+ "String_Node_Str"+ dir+ "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str"+ dist+ "String_Node_Str"+ dir+ "String_Node_Str");
  instFeats.add("String_Node_Str" + argPos + "String_Node_Str"+ dist+ "String_Node_Str"+ dir+ "String_Node_Str");
  instFeats.add("String_Node_Str" + sent.size());
  instFeats.add("String_Node_Str" + dir);
  instFeats.add("String_Node_Str" + dist);
  instFeats.add("String_Node_Str" + dir + dist);
  instFeats.add("String_Node_Str" + predForm + "String_Node_Str");
  instFeats.add("String_Node_Str" + predPos + "String_Node_Str");
  instFeats.add("String_Node_Str" + argForm + "String_Node_Str");
  instFeats.add("String_Node_Str" + argPos + "String_Node_Str");
  for (  String feat : instFeats) {
    if (isTrain || allFeatures.contains(feat)) {
      if (isTrain) {
        allFeatures.add(feat);
      }
      for (      String suf : suffixes) {
        feats.add(feat + suf);
      }
    }
  }
  return feats;
}