Program: 131559
Project: 131559
Buggy source:
private void getSecondThirdSupArgFeats(ZhaoObject zhaoPred,ZhaoObject zhaoArg,ZhaoObject zhaoPredLast,ZhaoObject zhaoPredNext,ZhaoObject zhaoArgLast,ZhaoObject zhaoArgNext,ZhaoObject zhaoArgParent,ArrayList<CoNLL09Token> argChildrenTokens,BinaryStrFVBuilder feats){
  CoNLL09Token argLm=sent.get(zhaoArg.getFarLeftChild());
  CoNLL09Token argRm=sent.get(zhaoArg.getFarRightChild());
  CoNLL09Token argRn=sent.get(zhaoArg.getNearRightChild());
  CoNLL09Token argLn=sent.get(zhaoArg.getNearLeftChild());
  String feat;
  feats.add(zhaoArgParent.getLemma());
  feats.add(argLm.getDeprel() + "String_Node_Str" + zhaoArg.getForm());
  feats.add(sent.get(zhaoArgLast.getFarLeftChild()).getLemma());
  feats.add(argLm.getPos());
  feats.add(sent.get(zhaoArgNext.getFarLeftChild()).getPos());
  ArrayList<Integer> noFarChildren=zhaoArg.getNoFarChildren();
  ArrayList<String> noFarChildrenPos=new ArrayList<String>();
  if (cs.prm.useGoldSyntax) {
    for (    Integer i : noFarChildren) {
      noFarChildrenPos.add(sent.get(i).getPos());
    }
  }
 else {
    for (    Integer j : noFarChildren) {
      noFarChildrenPos.add(sent.get(j).getPpos());
    }
  }
  List<String> argNoFarChildrenBag=bag(noFarChildrenPos);
  feat=StringUtils.join(argNoFarChildrenBag,"String_Node_Str") + argRm.getForm();
  feats.add(feat);
  feats.add(sent.get(zhaoArg.getPhead()).getLemma());
  feats.add(argRm + "String_Node_Str" + zhaoArg.getForm());
  feats.add(sent.get(zhaoArgLast.getFarRightChild()).getForm());
  feats.add(argRm.getLemma());
  feats.add(argRn.getDeprel() + "String_Node_Str" + zhaoArg.getForm());
}

Fixed version (ground truth):
private void getSecondThirdSupArgFeats(ZhaoObject zhaoPred,ZhaoObject zhaoArg,ZhaoObject zhaoPredLast,ZhaoObject zhaoPredNext,ZhaoObject zhaoArgLast,ZhaoObject zhaoArgNext,ZhaoObject zhaoArgParent,ArrayList<CoNLL09Token> argChildrenTokens,BinaryStrFVBuilder feats){
  CoNLL09Token argLm=sent.get(zhaoArg.getFarLeftChild());
  CoNLL09Token argRm=sent.get(zhaoArg.getFarRightChild());
  CoNLL09Token argRn=sent.get(zhaoArg.getNearRightChild());
  CoNLL09Token argLn=sent.get(zhaoArg.getNearLeftChild());
  String feat;
  feats.add(zhaoArgParent.getLemma());
  feats.add(argLm.getDeprel() + "String_Node_Str" + zhaoArg.getForm());
  if (zhaoArgLast.getFarLeftChild() < 0) {
    feats.add("String_Node_Str");
  }
 else {
    feats.add(sent.get(zhaoArgLast.getFarLeftChild()).getLemma());
  }
  feats.add(argLm.getPos());
  if (zhaoArgNext.getFarLeftChild() < 0) {
    feats.add("String_Node_Str");
  }
 else {
    feats.add(sent.get(zhaoArgNext.getFarLeftChild()).getPos());
  }
  ArrayList<Integer> noFarChildren=zhaoArg.getNoFarChildren();
  ArrayList<String> noFarChildrenPos=new ArrayList<String>();
  if (cs.prm.useGoldSyntax) {
    for (    Integer i : noFarChildren) {
      if (i < 0) {
        feats.add("String_Node_Str");
      }
 else {
        noFarChildrenPos.add(sent.get(i).getPos());
      }
    }
  }
 else {
    for (    Integer j : noFarChildren) {
      if (j < 0) {
        feats.add("String_Node_Str");
      }
 else {
        noFarChildrenPos.add(sent.get(j).getPpos());
      }
    }
  }
  List<String> argNoFarChildrenBag=bag(noFarChildrenPos);
  feat=StringUtils.join(argNoFarChildrenBag,"String_Node_Str") + argRm.getForm();
  feats.add(feat);
  if (zhaoArg.getPhead() < 0) {
    feats.add("String_Node_Str");
  }
 else {
    feats.add(sent.get(zhaoArg.getPhead()).getLemma());
  }
  feats.add(argRm + "String_Node_Str" + zhaoArg.getForm());
  if (zhaoArgLast.getFarRightChild() < 0) {
    feats.add("String_Node_Str");
  }
 else {
    feats.add(sent.get(zhaoArgLast.getFarRightChild()).getForm());
  }
  feats.add(argRm.getLemma());
  feats.add(argRn.getDeprel() + "String_Node_Str" + zhaoArg.getForm());
}