Program: 45191
Project: 45191
Buggy source:
private Collection<NewsItem> getNewsForNewsRackFilterFeed(Feed f,Date startDate,Date endDate,int startId,int numArts){
  _log.info("String_Node_Str" + f.getUrl() + "String_Node_Str"+ startDate+ "String_Node_Str"+ endDate);
  String url, server, uid, rest;
  int i="String_Node_Str".length();
  url=f.getUrl();
  server=url.substring(i,url.indexOf("String_Node_Str",i));
  Collection<NewsItem> noItems=new ArrayList<NewsItem>();
  if (!NewsRack.getServerURL().equals("String_Node_Str" + server)) {
    _log.error("String_Node_Str" + server + "String_Node_Str"+ NewsRack.getServerURL());
    return noItems;
  }
  i+=server.length() + 1;
  uid=url.substring(i,url.indexOf("String_Node_Str",i));
  User u=User.getUser(uid);
  if (u == null) {
    _log.error("String_Node_Str" + uid);
    return noItems;
  }
  i+=uid.length() + 1;
  rest=url.substring(i);
  if (rest.indexOf("String_Node_Str") == -1) {
    i=rest.indexOf("String_Node_Str");
    if (i > 0) {
      String topic=rest.substring(0,i);
      int catID=Integer.valueOf(rest.substring(i + 1));
      Issue t=u.getIssue(topic);
      if (t == null) {
        _log.error("String_Node_Str" + topic);
        return noItems;
      }
      Category cat=t.getCategory(catID);
      if (cat == null) {
        _log.error("String_Node_Str" + catID + "String_Node_Str"+ topic);
        return noItems;
      }
      return getNews(cat,startDate,endDate,null,startId,numArts);
    }
 else {
      Issue t=u.getIssue(rest);
      if (t == null) {
        _log.error("String_Node_Str" + rest);
        return noItems;
      }
      return getNews(t,startDate,endDate,null,startId,numArts);
    }
  }
 else {
    Category cat=(Category)GET_CATEGORY_FROM_TAXONOMY_PATH.execute(new Object[]{uid + "String_Node_Str" + rest,true});
    if (cat == null) {
      _log.error("String_Node_Str" + uid + "String_Node_Str"+ rest);
      return noItems;
    }
    return getNews(cat,startDate,endDate,null,startId,numArts);
  }
}

Fixed version (ground truth):
private Collection<NewsItem> getNewsForNewsRackFilterFeed(Feed f,Date startDate,Date endDate,int startId,int numArts){
  _log.info("String_Node_Str" + f.getUrl() + "String_Node_Str"+ startDate+ "String_Node_Str"+ endDate);
  String url, server, uid, rest;
  int i="String_Node_Str".length();
  url=f.getUrl();
  server=url.substring(i,url.indexOf("String_Node_Str",i));
  Collection<NewsItem> noItems=new ArrayList<NewsItem>();
  if (!NewsRack.getServerURL().equals("String_Node_Str" + server)) {
    _log.error("String_Node_Str" + server + "String_Node_Str"+ NewsRack.getServerURL());
    return noItems;
  }
  i+=server.length() + 1;
  uid=url.substring(i,url.indexOf("String_Node_Str",i));
  User u=User.getUser(uid);
  if (u == null) {
    _log.error("String_Node_Str" + uid);
    return noItems;
  }
  i+=uid.length() + 1;
  rest=url.substring(i);
  if (rest.indexOf("String_Node_Str") == -1) {
    i=rest.indexOf("String_Node_Str");
    if (i > 0) {
      String topic=rest.substring(0,i);
      int catID=Integer.valueOf(rest.substring(i + 1));
      Issue t=u.getIssue(topic);
      if (t == null) {
        _log.error("String_Node_Str" + topic);
        return noItems;
      }
      Category cat=t.getCategory(catID);
      if (cat == null) {
        _log.error("String_Node_Str" + catID + "String_Node_Str"+ topic);
        return noItems;
      }
      return getNews(cat,startDate,endDate,null,startId,numArts);
    }
 else {
      Issue t=u.getIssue(rest);
      if (t == null) {
        _log.error("String_Node_Str" + rest);
        return noItems;
      }
      return getNews(t,startDate,endDate,null,startId,numArts);
    }
  }
 else {
    Tuple<Long,Category> tcat=(Tuple<Long,Category>)GET_CATEGORY_FROM_TAXONOMY_PATH.execute(new Object[]{uid + "String_Node_Str" + rest,true});
    if (tcat == null) {
      _log.error("String_Node_Str" + uid + "String_Node_Str"+ rest);
      return noItems;
    }
    Category c=getCategory(tcat._b.getKey());
    return getNews(c,startDate,endDate,null,startId,numArts);
  }
}