Browse Source

Do not cache the QueryShardContext in PercolatorFieldMapper: it is cheap to create.

Adrien Grand 9 years ago
parent
commit
df4482fdc8

+ 1 - 21
modules/percolator/src/main/java/org/elasticsearch/percolator/PercolatorFieldMapper.java

@@ -234,33 +234,13 @@ public class PercolatorFieldMapper extends FieldMapper {
                                  KeywordFieldMapper queryTermsField, KeywordFieldMapper extractionResultField,
                                  BinaryFieldMapper queryBuilderField) {
         super(simpleName, fieldType, defaultFieldType, indexSettings, multiFields, copyTo);
-        this.queryShardContext = new QueryShardContextSupplierCache(queryShardContext);
+        this.queryShardContext = queryShardContext;
         this.queryTermsField = queryTermsField;
         this.extractionResultField = extractionResultField;
         this.queryBuilderField = queryBuilderField;
         this.mapUnmappedFieldAsString = INDEX_MAP_UNMAPPED_FIELDS_AS_STRING_SETTING.get(indexSettings);
     }
 
-    private static class QueryShardContextSupplierCache implements Supplier<QueryShardContext> {
-        private final Supplier<QueryShardContext> supplier;
-        private volatile QueryShardContext context;
-
-        QueryShardContextSupplierCache(Supplier<QueryShardContext> supplier) {
-            this.supplier = supplier;
-        }
-
-        @Override
-        public QueryShardContext get() {
-            QueryShardContext context = this.context;
-            if (context == null) {
-                context = this.context = supplier.get();
-            }
-            // return a copy
-            return new QueryShardContext(context);
-        }
-
-    }
-
     @Override
     public FieldMapper updateFieldType(Map<String, MappedFieldType> fullNameToFieldType) {
         PercolatorFieldMapper updated = (PercolatorFieldMapper) super.updateFieldType(fullNameToFieldType);