Browse Source

[TEST] Don't recycle in facets.

The recycling happening in facets is done manually and arrays are sometimes not
released. Aggregations do it in a less error-prone way by registering on to the
SearchContext.
Adrien Grand 11 years ago
parent
commit
ff2903d2c6

+ 1 - 3
src/main/java/org/elasticsearch/search/facet/terms/strings/TermsStringOrdinalsFacetExecutor.java

@@ -54,7 +54,6 @@ public class TermsStringOrdinalsFacetExecutor extends FacetExecutor {
     private final IndexOrdinalsFieldData indexFieldData;
 
     final CacheRecycler cacheRecycler;
-    final BigArrays bigArrays;
     private final TermsFacet.ComparatorType comparatorType;
     private final int size;
     private final int shardSize;
@@ -90,7 +89,6 @@ public class TermsStringOrdinalsFacetExecutor extends FacetExecutor {
         }
 
         this.cacheRecycler = context.cacheRecycler();
-        this.bigArrays = context.bigArrays();
 
         this.aggregators = new ArrayList<>(context.searcher().getIndexReader().leaves().size());
     }
@@ -260,7 +258,7 @@ public class TermsStringOrdinalsFacetExecutor extends FacetExecutor {
         public ReaderAggregator(RandomAccessOrds values, int ordinalsCacheLimit, CacheRecycler cacheRecycler) {
             this.values = values;
             this.maxOrd = values.getValueCount();
-            this.counts = bigArrays.newIntArray(maxOrd);
+            this.counts = BigArrays.NON_RECYCLING_INSTANCE.newIntArray(maxOrd);
         }
 
         final void onOrdinal(int docId, long ordinal) {