Program: 131565
Project: 131565
Buggy source:
private void addZhaoSupervisedCombinedFeats(ZhaoObject zhaoPred,ZhaoObject zhaoArg,BinaryStrFVBuilder feats,ArrayList<CoNLL09Token> betweenPathTokens,ArrayList<CoNLL09Token> linePathCoNLL,List<Pair<Integer,Dir>> dpPathArg){
  String feat;
  feat=zhaoArg.getLemma() + "String_Node_Str" + zhaoPred.getLemma();
  feats.add(feat);
  ArrayList<String> depRelPath=new ArrayList<String>();
  ArrayList<String> depRelPathLemma=new ArrayList<String>();
  for (  CoNLL09Token t : betweenPathTokens) {
    depRelPath.add(t.getDeprel());
    depRelPathLemma.add(t.getLemma());
  }
  feat=StringUtils.join(depRelPath,"String_Node_Str") + "String_Node_Str" + zhaoPred.getFeat().get(0);
  feats.add(feat);
  feat=StringUtils.join(depRelPathLemma,"String_Node_Str");
  feats.add(feat);
  feat=StringUtils.join(bag(depRelPathLemma),"String_Node_Str");
  feats.add(feat);
  ArrayList<String> linePathFeat=new ArrayList<String>();
  ArrayList<String> linePathLemma=new ArrayList<String>();
  ArrayList<String> linePathDeprel=new ArrayList<String>();
  for (  CoNLL09Token t : linePathCoNLL) {
    List<String> tFeat1=t.getFeat();
    if (tFeat1 == null) {
      linePathFeat.add(NO_MORPH);
    }
 else {
      linePathFeat.add(t.getFeat().get(0));
    }
    linePathLemma.add(t.getLemma());
    linePathDeprel.add(t.getDeprel());
  }
  List<String> linePathFeatBag=bag(linePathFeat);
  feat=StringUtils.join(linePathFeatBag,"String_Node_Str");
  feats.add(feat);
  feat=StringUtils.join(linePathLemma,"String_Node_Str");
  feats.add(feat);
  feat=StringUtils.join(linePathDeprel,"String_Node_Str");
  feats.add(feat);
  ArrayList<String> dpPathLemma=new ArrayList<String>();
  for (  Pair<Integer,Dir> dpP : dpPathArg) {
    dpPathLemma.add(sent.get(dpP.get1()).getLemma());
  }
  feat=StringUtils.join(dpPathLemma,"String_Node_Str");
  feats.add(feat);
  feat=StringUtils.join(bag(dpPathLemma),"String_Node_Str");
  feats.add(feat);
}

Fixed version (ground truth):
private void addZhaoSupervisedCombinedFeats(ZhaoObject zhaoPred,ZhaoObject zhaoArg,BinaryStrFVBuilder feats,ArrayList<CoNLL09Token> betweenPathTokens,ArrayList<CoNLL09Token> linePathCoNLL,List<Pair<Integer,Dir>> dpPathArg){
  String feat;
  feat=zhaoArg.getLemma() + "String_Node_Str" + zhaoPred.getLemma();
  feats.add(feat);
  ArrayList<String> depRelPath=new ArrayList<String>();
  ArrayList<String> depRelPathLemma=new ArrayList<String>();
  for (  CoNLL09Token t : betweenPathTokens) {
    if (t == null) {
      depRelPath.add("String_Node_Str");
      depRelPathLemma.add("String_Node_Str");
    }
 else {
      depRelPath.add(t.getDeprel());
      depRelPathLemma.add(t.getLemma());
    }
  }
  feat=StringUtils.join(depRelPath,"String_Node_Str") + "String_Node_Str" + zhaoPred.getFeat().get(0);
  feats.add(feat);
  feat=StringUtils.join(depRelPathLemma,"String_Node_Str");
  feats.add(feat);
  feat=StringUtils.join(bag(depRelPathLemma),"String_Node_Str");
  feats.add(feat);
  ArrayList<String> linePathFeat=new ArrayList<String>();
  ArrayList<String> linePathLemma=new ArrayList<String>();
  ArrayList<String> linePathDeprel=new ArrayList<String>();
  for (  CoNLL09Token t : linePathCoNLL) {
    List<String> tFeat1=t.getFeat();
    if (tFeat1 == null) {
      linePathFeat.add(NO_MORPH);
    }
 else {
      linePathFeat.add(t.getFeat().get(0));
    }
    linePathLemma.add(t.getLemma());
    linePathDeprel.add(t.getDeprel());
  }
  List<String> linePathFeatBag=bag(linePathFeat);
  feat=StringUtils.join(linePathFeatBag,"String_Node_Str");
  feats.add(feat);
  feat=StringUtils.join(linePathLemma,"String_Node_Str");
  feats.add(feat);
  feat=StringUtils.join(linePathDeprel,"String_Node_Str");
  feats.add(feat);
  ArrayList<String> dpPathLemma=new ArrayList<String>();
  for (  Pair<Integer,Dir> dpP : dpPathArg) {
    dpPathLemma.add(sent.get(dpP.get1()).getLemma());
  }
  feat=StringUtils.join(dpPathLemma,"String_Node_Str");
  feats.add(feat);
  feat=StringUtils.join(bag(dpPathLemma),"String_Node_Str");
  feats.add(feat);
}