gsmiller commented on code in PR #12642: URL: https://github.com/apache/lucene/pull/12642#discussion_r1357145658
########## lucene/facet/src/test/org/apache/lucene/facet/TestDrillSideways.java: ########## @@ -316,6 +317,68 @@ public void testBasic() throws Exception { IOUtils.close(searcher.getIndexReader(), taxoReader, taxoWriter, dir, taxoDir); } + public void testLeafCollectorSingleFinishCall() throws Exception { + try (Directory dir = newDirectory(); + Directory taxoDir = newDirectory(); + RandomIndexWriter w = new RandomIndexWriter(random(), dir); + DirectoryTaxonomyWriter taxoW = + new DirectoryTaxonomyWriter(taxoDir, IndexWriterConfig.OpenMode.CREATE)) { + FacetsConfig facetsConfig = new FacetsConfig(); + + Document d = new Document(); + d.add(new FacetField("foo", "bar")); + w.addDocument(facetsConfig.build(taxoW, d)); + + try (IndexReader r = w.getReader(); + TaxonomyReader taxoR = new DirectoryTaxonomyReader(taxoW)) { + IndexSearcher searcher = new IndexSearcher(r); + + Query baseQuery = new MatchAllDocsQuery(); + Query dimQ = new TermQuery(new Term("foo", "bar")); + + DrillDownQuery ddq = new DrillDownQuery(facetsConfig, baseQuery); + ddq.add("foo", dimQ); + DrillSideways drillSideways = new DrillSideways(searcher, facetsConfig, taxoR); + + CollectorManager<?, ?> cm = + new CollectorManager<>() { + @Override + public Collector newCollector() throws IOException { + // We don't need the collector to actually do anything; we just care about the logic + // in the AssertingCollector / AssertingLeafCollector (and AssertingIndexSearcher) + // to make sure #finish is called exactly once on the leaf collector: + return AssertingCollector.wrap( + new Collector() { + @Override + public LeafCollector getLeafCollector(LeafReaderContext context) + throws IOException { + return new LeafCollector() { Review Comment: Yeah fair. I think I'll actually use a `CollectorManager` that's already defined for drill-sideways testing to simplify even further. We don't really need to collect anything for this test, but it's easier to just use it and not do all this custom setup. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org