From b7eb43cef63fa56ef0a4b6a22690225f558162ea Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Mon, 26 Oct 2015 23:02:20 +0100 Subject: [PATCH] make IndicesWarmer final in BitsetFilterCache --- .../index/cache/bitset/BitsetFilterCache.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/index/cache/bitset/BitsetFilterCache.java b/core/src/main/java/org/elasticsearch/index/cache/bitset/BitsetFilterCache.java index dbcca199573..7ef4c5b3da1 100644 --- a/core/src/main/java/org/elasticsearch/index/cache/bitset/BitsetFilterCache.java +++ b/core/src/main/java/org/elasticsearch/index/cache/bitset/BitsetFilterCache.java @@ -66,7 +66,7 @@ import java.util.concurrent.Executor; * and require that it should always be around should use this cache, otherwise the * {@link org.elasticsearch.index.cache.query.QueryCache} should be used instead. */ -public class BitsetFilterCache extends AbstractIndexComponent implements LeafReader.CoreClosedListener, RemovalListener>, Closeable { +public final class BitsetFilterCache extends AbstractIndexComponent implements LeafReader.CoreClosedListener, RemovalListener>, Closeable { public static final String LOAD_RANDOM_ACCESS_FILTERS_EAGERLY = "index.load_fixed_bitset_filters_eagerly"; private static final Listener DEFAULT_NOOP_LISTENER = new Listener() { @@ -83,8 +83,7 @@ public class BitsetFilterCache extends AbstractIndexComponent implements LeafRea private final Cache> loadedFilters; private volatile Listener listener = DEFAULT_NOOP_LISTENER; private final BitSetProducerWarmer warmer; - - private IndicesWarmer indicesWarmer; + private final IndicesWarmer indicesWarmer; public BitsetFilterCache(IndexSettings indexSettings, IndicesWarmer indicesWarmer) { super(indexSettings); @@ -94,6 +93,7 @@ public class BitsetFilterCache extends AbstractIndexComponent implements LeafRea this.indicesWarmer = indicesWarmer; indicesWarmer.addListener(warmer); } + /** * Sets a listener that is invoked for all subsequent cache and removal events. * @throws IllegalStateException if the listener is set more than once @@ -120,10 +120,11 @@ public class BitsetFilterCache extends AbstractIndexComponent implements LeafRea @Override public void close() { - if (indicesWarmer != null) { + try { indicesWarmer.removeListener(warmer); + } finally { + clear("close"); } - clear("close"); } public void clear(String reason) {