Program: 33486
Project: 33486
Buggy source:
protected List<Row> getRows(final ExtendedFilter filter,final Search search){
  final SearchSupport searchSupport=this;
  AbstractBounds<RowPosition> keyRange=filter.dataRange.keyRange();
  final Range<Token> filterRange=new Range<>(keyRange.left.getToken(),keyRange.right.getToken());
  final boolean isSingleToken=filterRange.left.equals(filterRange.right);
  final boolean isFullRange=isSingleToken && baseCfs.partitioner.getMinimumToken().equals(filterRange.left);
  SearcherCallback<List<Row>> sc=new SearcherCallback<List<Row>>(){
    @Override public List<Row> doWithSearcher(    org.apache.lucene.search.IndexSearcher searcher) throws Exception {
      Utils.SimpleTimer timer=Utils.getStartedTimer(logger);
      List<Row> results;
      if (search == null) {
        results=new ArrayList<>();
      }
 else {
        Utils.SimpleTimer timer2=Utils.getStartedTimer(SearchSupport.logger);
        Function function=search.function(options);
        Query query=search.query(options);
        int resultsLimit=searcher.getIndexReader().maxDoc();
        if (function.shouldLimit()) {
          if (resultsLimit == 0) {
            resultsLimit=1;
          }
          resultsLimit=Math.min(filter.currentLimit() + 1,resultsLimit);
        }
        function.init(options);
        IndexEntryCollector collector=new IndexEntryCollector(function,search,options,resultsLimit);
        searcher.search(query,collector);
        timer2.endLogTime("String_Node_Str" + collector.getTotalHits() + "String_Node_Str");
        if (SearchSupport.logger.isDebugEnabled()) {
          SearchSupport.logger.debug(String.format("String_Node_Str",collector.getTotalHits()));
        }
        ResultMapper iter=new ResultMapper(tableMapper,searchSupport,filter,collector,function.shouldTryScoring() && search.isShowScore());
        Utils.SimpleTimer timer3=Utils.getStartedTimer(SearchSupport.logger);
        results=function.process(iter,baseCfs,currentIndex);
        timer3.endLogTime("String_Node_Str" + collector.getTotalHits() + "String_Node_Str");
      }
      timer.endLogTime("String_Node_Str" + results.size() + "String_Node_Str");
      return results;
    }
    @Override public Range<Token> filterRange(){
      return filterRange;
    }
    @Override public boolean isSingleToken(){
      return isSingleToken;
    }
    @Override public boolean isFullRange(){
      return isFullRange;
    }
  }
;
  return currentIndex.search(sc);
}

Fixed version (ground truth):
protected List<Row> getRows(final ExtendedFilter filter,final Search search){
  final SearchSupport searchSupport=this;
  AbstractBounds<RowPosition> keyRange=filter.dataRange.keyRange();
  final Range<Token> filterRange=new Range<>(keyRange.left.getToken(),keyRange.right.getToken());
  final boolean isSingleToken=filterRange.left.equals(filterRange.right);
  final boolean isFullRange=isSingleToken && baseCfs.partitioner.getMinimumToken().equals(filterRange.left);
  SearcherCallback<List<Row>> sc=new SearcherCallback<List<Row>>(){
    @Override public List<Row> doWithSearcher(    org.apache.lucene.search.IndexSearcher searcher) throws Exception {
      Utils.SimpleTimer timer=Utils.getStartedTimer(logger);
      List<Row> results;
      if (search == null) {
        results=new ArrayList<>();
      }
 else {
        Utils.SimpleTimer timer2=Utils.getStartedTimer(SearchSupport.logger);
        Function function=search.function(options);
        Query query=search.query(options);
        int resultsLimit=searcher.getIndexReader().maxDoc();
        if (function.shouldLimit()) {
          if (resultsLimit == 0) {
            resultsLimit=1;
          }
          resultsLimit=Math.min(filter.currentLimit() + 1,resultsLimit);
        }
        function.init(options);
        IndexEntryCollector collector=new IndexEntryCollector(function,search,options,resultsLimit);
        searcher.search(query,collector);
        timer2.endLogTime("String_Node_Str" + collector.getTotalHits() + "String_Node_Str");
        if (SearchSupport.logger.isDebugEnabled()) {
          SearchSupport.logger.debug(String.format("String_Node_Str",collector.getTotalHits()));
        }
        ResultMapper iter=new ResultMapper(tableMapper,searchSupport,filter,collector,function.shouldTryScoring() && search.isShowScore());
        Utils.SimpleTimer timer3=Utils.getStartedTimer(SearchSupport.logger);
        results=function.process(iter,baseCfs,currentIndex);
        timer3.endLogTime("String_Node_Str" + results.size() + "String_Node_Str");
      }
      timer.endLogTime("String_Node_Str" + results.size() + "String_Node_Str");
      return results;
    }
    @Override public Range<Token> filterRange(){
      return filterRange;
    }
    @Override public boolean isSingleToken(){
      return isSingleToken;
    }
    @Override public boolean isFullRange(){
      return isFullRange;
    }
  }
;
  return currentIndex.search(sc);
}