diff --git a/src/test/java/org/elasticsearch/test/integration/ElasticsearchLuceneTestCase.java b/src/test/java/org/elasticsearch/test/integration/ElasticsearchLuceneTestCase.java index 551ec97852f..cc8a2005e5f 100644 --- a/src/test/java/org/elasticsearch/test/integration/ElasticsearchLuceneTestCase.java +++ b/src/test/java/org/elasticsearch/test/integration/ElasticsearchLuceneTestCase.java @@ -21,6 +21,7 @@ package org.elasticsearch.test.integration; import com.carrotsearch.randomizedtesting.annotations.*; import com.carrotsearch.randomizedtesting.annotations.ThreadLeakScope.Scope; +import org.apache.lucene.codecs.Codec; import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util.LuceneTestCase.SuppressCodecs; import org.apache.lucene.util.TimeUnits; @@ -34,5 +35,13 @@ import org.elasticsearch.junit.listerners.ReproduceInfoPrinter; @TimeoutSuite(millis = TimeUnits.HOUR) @SuppressCodecs("Lucene3x") public class ElasticsearchLuceneTestCase extends LuceneTestCase { + + private static final Codec DEFAULT_CODEC = Codec.getDefault(); + /** + * Forcefully reset the default codec + */ + public static void forceDefaultCodec() { + Codec.setDefault(DEFAULT_CODEC); + } } diff --git a/src/test/java/org/elasticsearch/test/unit/index/codec/CodecTests.java b/src/test/java/org/elasticsearch/test/unit/index/codec/CodecTests.java index be4c37ae38a..136bec62c06 100644 --- a/src/test/java/org/elasticsearch/test/unit/index/codec/CodecTests.java +++ b/src/test/java/org/elasticsearch/test/unit/index/codec/CodecTests.java @@ -23,7 +23,6 @@ import org.apache.lucene.codecs.Codec; import org.apache.lucene.codecs.bloom.BloomFilteringPostingsFormat; import org.apache.lucene.codecs.lucene40.Lucene40Codec; import org.apache.lucene.codecs.lucene41.Lucene41Codec; -import org.apache.lucene.codecs.lucene41.Lucene41PostingsFormat; import org.apache.lucene.codecs.memory.DirectPostingsFormat; import org.apache.lucene.codecs.memory.MemoryPostingsFormat; import org.apache.lucene.codecs.perfield.PerFieldPostingsFormat; @@ -46,15 +45,21 @@ import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.MapperServiceModule; import org.elasticsearch.index.settings.IndexSettingsModule; import org.elasticsearch.index.similarity.SimilarityModule; +import org.elasticsearch.test.integration.ElasticsearchLuceneTestCase; +import org.junit.Before; import org.junit.Test; -import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; -/** - */ -public class CodecTests { +public class CodecTests extends ElasticsearchLuceneTestCase { + + @Override + @Before + public void setUp() throws Exception { + super.setUp(); + forceDefaultCodec(); // we test against default codec so never get a random one here! + } @Test public void testResolveDefaultCodecs() throws Exception { @@ -72,7 +77,7 @@ public class CodecTests { assertThat(postingsFormatService.get("default").get(), instanceOf(ElasticSearch090PostingsFormat.class)); // Should fail when upgrading Lucene with codec changes - assertThat(((ElasticSearch090PostingsFormat)postingsFormatService.get("default").get()).getDefaultWrapped(), instanceOf(((PerFieldPostingsFormat) Codec.getDefault().postingsFormat()).getPostingsFormatForField(null).getClass())); + assertThat(((ElasticSearch090PostingsFormat)postingsFormatService.get("default").get()).getDefaultWrapped(), instanceOf(((PerFieldPostingsFormat) Codec.getDefault().postingsFormat()).getPostingsFormatForField("").getClass())); assertThat(postingsFormatService.get("Lucene41"), instanceOf(PreBuiltPostingsFormatProvider.class)); // Should fail when upgrading Lucene with codec changes assertThat(postingsFormatService.get("Lucene41").get(), instanceOf(((PerFieldPostingsFormat) Codec.getDefault().postingsFormat()).getPostingsFormatForField(null).getClass()));