diff --git a/lucene/facet/src/test/org/apache/lucene/facet/search/TestDrillSideways.java b/lucene/facet/src/test/org/apache/lucene/facet/search/TestDrillSideways.java index 4e3e1bccde3..9772f90d44d 100644 --- a/lucene/facet/src/test/org/apache/lucene/facet/search/TestDrillSideways.java +++ b/lucene/facet/src/test/org/apache/lucene/facet/search/TestDrillSideways.java @@ -28,11 +28,15 @@ import java.util.Map; import java.util.Set; import org.apache.lucene.analysis.MockAnalyzer; +import org.apache.lucene.codecs.Codec; +import org.apache.lucene.codecs.DocValuesFormat; +import org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.StringField; import org.apache.lucene.facet.FacetTestCase; import org.apache.lucene.facet.FacetTestUtils; +import org.apache.lucene.facet.codecs.facet42.Facet42DocValuesFormat; import org.apache.lucene.facet.index.FacetFields; import org.apache.lucene.facet.params.FacetIndexingParams; import org.apache.lucene.facet.params.FacetSearchParams; @@ -58,8 +62,8 @@ import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.Scorer; import org.apache.lucene.search.Sort; -import org.apache.lucene.search.SortField; import org.apache.lucene.search.SortField.Type; +import org.apache.lucene.search.SortField; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; @@ -429,6 +433,16 @@ public class TestDrillSideways extends FacetTestCase { boolean canUseDV = defaultCodecSupportsSortedSet(); + // TestRuleSetupAndRestoreClassEnv can sometimes + // randomly pick the non-general Facet42DocValuesFormat: + DocValuesFormat dvf = Codec.getDefault().docValuesFormat(); + if (dvf instanceof PerFieldDocValuesFormat) { + dvf = ((PerFieldDocValuesFormat) dvf).getDocValuesFormatForField("$facets"); + } + if (dvf instanceof Facet42DocValuesFormat) { + canUseDV = false; + } + while (aChance == 0.0) { aChance = random().nextDouble(); }