You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2021/02/21 14:15:04 UTC

[lucene-solr] branch reference_impl_dev updated: @1360 Cleaning up test before/after class.

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/reference_impl_dev by this push:
     new ab58942  @1360 Cleaning up test before/after class.
ab58942 is described below

commit ab589429a7601f04946e15968df6a820c10f238d
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Sun Feb 21 08:14:32 2021 -0600

    @1360 Cleaning up test before/after class.
    
    Took 38 minutes
---
 .../test/org/apache/solr/TestRandomDVFaceting.java |   5 +-
 .../analysis/ProtectedTermFilterFactoryTest.java   |   8 +-
 .../TestReversedWildcardFilterFactory.java         |   6 +
 .../apache/solr/cloud/SolrCloudBridgeTestCase.java |   7 +-
 .../apache/solr/core/TestMergePolicyConfig.java    |   3 +-
 .../apache/solr/core/TestQuerySenderListener.java  |   7 +-
 .../component/QueryElevationComponentTest.java     | 943 ++++++++-------------
 .../apache/solr/request/TestIntervalFaceting.java  |   1 -
 .../org/apache/solr/response/JSONWriterTest.java   |   6 +
 .../response/TestPHPSerializedResponseWriter.java  |   6 +
 .../solr/response/TestRawResponseWriter.java       |   6 +-
 .../test/org/apache/solr/schema/CopyFieldTest.java |   8 +-
 .../org/apache/solr/schema/DocValuesMultiTest.java |  14 +
 .../test/org/apache/solr/schema/EnumFieldTest.java |  12 +-
 .../solr/schema/ExternalFileFieldSortTest.java     |  15 +-
 .../test/org/apache/solr/schema/PolyFieldTest.java |   6 +
 .../apache/solr/schema/PrimitiveFieldTypeTest.java |   4 +
 .../org/apache/solr/schema/RequiredFieldsTest.java |   6 +
 .../apache/solr/schema/TestSortableTextField.java  |   8 +-
 .../org/apache/solr/search/CursorMarkTest.java     |   8 +-
 .../apache/solr/search/TestStressUserVersions.java |   8 +-
 .../join/another/BJQFilterAccessibleTest.java      |   6 +
 .../solr/spelling/IndexBasedSpellCheckerTest.java  |   3 +-
 .../SpellCheckCollatorWithCollapseTest.java        |   2 +-
 .../update/processor/NestedAtomicUpdateTest.java   |   6 +-
 .../UpdateRequestProcessorFactoryTest.java         |   6 +
 .../apache/solr/util/TestMaxTokenLenTokenizer.java |   6 +
 .../solr/client/solrj/TestSolrJErrorHandling.java  |   6 +
 .../client/solrj/embedded/TestSolrProperties.java  |   4 -
 .../solrj/response/TestSpellCheckResponse.java     |   6 +
 .../solrj/response/TestSuggesterResponse.java      |   6 +
 .../src/java/org/apache/solr/SolrTestCase.java     |   4 +-
 32 files changed, 516 insertions(+), 626 deletions(-)

diff --git a/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java b/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java
index 68f2284..650c311 100644
--- a/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java
+++ b/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java
@@ -50,7 +50,8 @@ public class TestRandomDVFaceting extends SolrTestCaseJ4 {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Before
-  public void beforeTests() throws Exception {
+  public void setUp() throws Exception {
+    super.setUp();
     System.setProperty("enable.update.log", "false");
     // This tests explicitly compares Trie DV with non-DV Trie with DV Points
     // so we don't want randomized DocValues on all Trie fields
@@ -72,8 +73,8 @@ public class TestRandomDVFaceting extends SolrTestCaseJ4 {
 
   @After
   public void tearDown() throws Exception {
-    super.tearDown();
     deleteCore();
+    super.tearDown();
   }
 
 
diff --git a/solr/core/src/test/org/apache/solr/analysis/ProtectedTermFilterFactoryTest.java b/solr/core/src/test/org/apache/solr/analysis/ProtectedTermFilterFactoryTest.java
index 3d7c23b..b065991 100644
--- a/solr/core/src/test/org/apache/solr/analysis/ProtectedTermFilterFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/analysis/ProtectedTermFilterFactoryTest.java
@@ -26,15 +26,21 @@ import org.apache.lucene.analysis.miscellaneous.ProtectedTermFilterFactory;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.SolrTestUtil;
 import org.apache.solr.core.SolrResourceLoader;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
 public class ProtectedTermFilterFactoryTest extends SolrTestCaseJ4 {
 
   @BeforeClass
-  public static void beforeClass() throws Exception {
+  public static void beforeProtectedTermFilterFactoryTest() throws Exception {
     initCore("solrconfig.xml","schema-protected-term.xml");
   }
 
+  @AfterClass
+  public static void afterProtectedTermFilterFactoryTest() {
+    deleteCore();
+  }
+
   public void testBasic() throws Exception {
     String text = "Wuthering FooBar distant goldeN ABC compote";
     Map<String,String> args = new HashMap<>();
diff --git a/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java b/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java
index 0486abe..81add37 100644
--- a/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java
+++ b/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java
@@ -41,6 +41,7 @@ import org.apache.solr.schema.IndexSchemaFactory;
 import org.apache.solr.search.QParser;
 import org.apache.solr.search.SolrQueryParser;
 import org.apache.solr.search.SyntaxError;
+import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -56,6 +57,11 @@ public class TestReversedWildcardFilterFactory extends SolrTestCaseJ4 {
     assumeWorkingMockito();
     initCore("solrconfig.xml","schema-reversed.xml");
   }
+
+  @AfterClass
+  public static void afterTestReversedWildcardFilterFactory() {
+    deleteCore();
+  }
   
   @Override
   @Before
diff --git a/solr/core/src/test/org/apache/solr/cloud/SolrCloudBridgeTestCase.java b/solr/core/src/test/org/apache/solr/cloud/SolrCloudBridgeTestCase.java
index 1e0bed6..755a848 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SolrCloudBridgeTestCase.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SolrCloudBridgeTestCase.java
@@ -148,7 +148,8 @@ public abstract class SolrCloudBridgeTestCase extends SolrCloudTestCase {
 
   
   @Before
-  public void beforeSolrCloudBridgeTestCase() throws Exception {
+  public void setUp() throws Exception {
+    super.setUp();
     Path TEST_PATH = SolrTestUtil.getFile("solr/collection1").getParentFile().toPath();
 
     COLLECTION = "collection" + collectionCount.incrementAndGet();
@@ -238,7 +239,7 @@ public abstract class SolrCloudBridgeTestCase extends SolrCloudTestCase {
   }
   
   @After
-  public void cleanup() throws Exception {
+  public void tearDown() throws Exception {
     if (cluster != null) cluster.shutdown();
     if (controlCluster != null) controlCluster.shutdown();
     cluster = null;
@@ -250,6 +251,7 @@ public abstract class SolrCloudBridgeTestCase extends SolrCloudTestCase {
     }
     clients.clear();
     controlClient = null;
+    super.tearDown();
   }
 
   @BeforeClass
@@ -268,7 +270,6 @@ public abstract class SolrCloudBridgeTestCase extends SolrCloudTestCase {
     }
     newClients.clear();
     cloudClient = null;
-    newClients.clear();
     extraServlets = null;
     createCollection1 = true;
     createControl = false;
diff --git a/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java b/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java
index 5fb20bb..7dbaf96 100644
--- a/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java
+++ b/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java
@@ -46,8 +46,9 @@ public class TestMergePolicyConfig extends SolrTestCaseJ4 {
   private static AtomicInteger docIdCounter = new AtomicInteger(42);
 
   @After
-  public void after() throws Exception {
+  public void tearDown() throws Exception {
     deleteCore();
+    super.tearDown();
   }
   
   public void testSetNoCFSMergePolicyConfig() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java b/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
index 246dda0..3a2a4f7 100644
--- a/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
+++ b/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
@@ -18,6 +18,7 @@ package org.apache.solr.core;
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.params.EventParams;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -31,7 +32,7 @@ public class TestQuerySenderListener extends SolrTestCaseJ4 {
   private static int preInitMockListenerCount = 0;
 
   @BeforeClass
-  public static void beforeClass() throws Exception {
+  public static void beforeTestQuerySenderListener() throws Exception {
     // record current value prior to core initialization
     // so we can verify the correct number of instances later
     // NOTE: this won't work properly if concurrent tests run
@@ -39,7 +40,11 @@ public class TestQuerySenderListener extends SolrTestCaseJ4 {
     preInitMockListenerCount = MockEventListener.getCreateCount();
 
     initCore("solrconfig-querysender.xml","schema.xml");
+  }
 
+  @AfterClass
+  public static void afterTestQuerySenderListener() {
+    deleteCore();
   }
 
   public void testListenerCreationCounts() {
diff --git a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
index c94b5ba..67b5349 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
@@ -39,6 +39,7 @@ import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.util.FileUtils;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -49,8 +50,7 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 {
 
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  @BeforeClass
-  public static void beforeClass() {
+  @BeforeClass public static void beforeClass() {
     switch (random().nextInt(3)) {
       case 0:
         System.setProperty("solr.tests.id.stored", "true");
@@ -70,9 +70,7 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 {
     }
   }
 
-  @Before
-  @Override
-  public void setUp() throws Exception {
+  @Before @Override public void setUp() throws Exception {
     super.setUp();
   }
 
@@ -87,471 +85,303 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 {
     File elevateDataFile = new File(initAndGetDataDir(), "elevate-data.xml");
     FileUtils.copyFile(elevateFile, elevateDataFile);
 
-
-    initCore(config,schema);
+    initCore(config, schema);
     clearIndex();
     assertU(commit());
   }
 
-  //TODO should be @After ?
-  private void delete() {
+  @After public void tearDown() throws Exception {
     deleteCore();
+    super.tearDown();
   }
 
-  @Test
-  public void testFieldType() throws Exception {
-    try {
-      init("schema11.xml");
-      clearIndex();
-      assertU(commit());
-      assertU(adoc("id", "1", "text", "XXXX XXXX", "str_s", "a"));
-      assertU(adoc("id", "2", "text", "YYYY", "str_s", "b"));
-      assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c"));
-
-      assertU(adoc("id", "4", "text", "XXXX XXXX", "str_s", "x"));
-      assertU(adoc("id", "5", "text", "YYYY YYYY", "str_s", "y"));
-      assertU(adoc("id", "6", "text", "XXXX XXXX", "str_s", "z"));
-      assertU(adoc("id", "7", "text", "AAAA", "str_s", "a"));
-      assertU(adoc("id", "8", "text", "AAAA", "str_s", "a"));
-      assertU(adoc("id", "9", "text", "AAAA AAAA", "str_s", "a"));
-      assertU(commit());
+  @Test public void testFieldType() throws Exception {
+
+    init("schema11.xml");
+    clearIndex();
+    assertU(commit());
+    assertU(adoc("id", "1", "text", "XXXX XXXX", "str_s", "a"));
+    assertU(adoc("id", "2", "text", "YYYY", "str_s", "b"));
+    assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c"));
+
+    assertU(adoc("id", "4", "text", "XXXX XXXX", "str_s", "x"));
+    assertU(adoc("id", "5", "text", "YYYY YYYY", "str_s", "y"));
+    assertU(adoc("id", "6", "text", "XXXX XXXX", "str_s", "z"));
+    assertU(adoc("id", "7", "text", "AAAA", "str_s", "a"));
+    assertU(adoc("id", "8", "text", "AAAA", "str_s", "a"));
+    assertU(adoc("id", "9", "text", "AAAA AAAA", "str_s", "a"));
+    assertU(commit());
+
+    assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='3']",
+        "//result/doc[1]/str[@name='id'][.='7']", "//result/doc[2]/str[@name='id'][.='9']", "//result/doc[3]/str[@name='id'][.='8']",
+        "//result/doc[1]/bool[@name='[elevated]'][.='true']", "//result/doc[2]/bool[@name='[elevated]'][.='false']",
+        "//result/doc[3]/bool[@name='[elevated]'][.='false']");
 
-      assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]")
-          , "//*[@numFound='3']"
-          , "//result/doc[1]/str[@name='id'][.='7']"
-          , "//result/doc[2]/str[@name='id'][.='9']"
-          , "//result/doc[3]/str[@name='id'][.='8']",
-          "//result/doc[1]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[2]/bool[@name='[elevated]'][.='false']",
-          "//result/doc[3]/bool[@name='[elevated]'][.='false']"
-      );
-    } finally {
-      delete();
-    }
   }
 
-  @Test
-  public void testGroupedQuery() throws Exception {
-    try {
-      init("schema11.xml");
-      clearIndex();
-      assertU(commit());
-      assertU(adoc("id", "1", "text", "XXXX XXXX", "str_s", "a"));
-      assertU(adoc("id", "2", "text", "XXXX AAAA", "str_s", "b"));
-      assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c"));
-      assertU(adoc("id", "4", "text", "XXXX ZZZZ", "str_s", "d"));
-      assertU(adoc("id", "5", "text", "ZZZZ ZZZZ", "str_s", "e"));
-      assertU(adoc("id", "6", "text", "AAAA AAAA AAAA", "str_s", "f"));
-      assertU(adoc("id", "7", "text", "AAAA AAAA ZZZZ", "str_s", "g"));
-      assertU(adoc("id", "8", "text", "XXXX", "str_s", "h"));
-      assertU(adoc("id", "9", "text", "YYYY ZZZZ", "str_s", "i"));
-
-      assertU(adoc("id", "22", "text", "XXXX ZZZZ AAAA", "str_s", "b"));
-      assertU(adoc("id", "66", "text", "XXXX ZZZZ AAAA", "str_s", "f"));
-      assertU(adoc("id", "77", "text", "XXXX ZZZZ AAAA", "str_s", "g"));
+  @Test public void testGroupedQuery() throws Exception {
 
-      assertU(commit());
+    init("schema11.xml");
+    clearIndex();
+    assertU(commit());
+    assertU(adoc("id", "1", "text", "XXXX XXXX", "str_s", "a"));
+    assertU(adoc("id", "2", "text", "XXXX AAAA", "str_s", "b"));
+    assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c"));
+    assertU(adoc("id", "4", "text", "XXXX ZZZZ", "str_s", "d"));
+    assertU(adoc("id", "5", "text", "ZZZZ ZZZZ", "str_s", "e"));
+    assertU(adoc("id", "6", "text", "AAAA AAAA AAAA", "str_s", "f"));
+    assertU(adoc("id", "7", "text", "AAAA AAAA ZZZZ", "str_s", "g"));
+    assertU(adoc("id", "8", "text", "XXXX", "str_s", "h"));
+    assertU(adoc("id", "9", "text", "YYYY ZZZZ", "str_s", "i"));
+
+    assertU(adoc("id", "22", "text", "XXXX ZZZZ AAAA", "str_s", "b"));
+    assertU(adoc("id", "66", "text", "XXXX ZZZZ AAAA", "str_s", "f"));
+    assertU(adoc("id", "77", "text", "XXXX ZZZZ AAAA", "str_s", "g"));
+
+    assertU(commit());
+
+    final String groups = "//arr[@name='groups']";
+
+    assertQ("non-elevated group query",
+        req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", GroupParams.GROUP_FIELD, "str_s", GroupParams.GROUP, "true", GroupParams.GROUP_TOTAL_COUNT,
+            "true", GroupParams.GROUP_LIMIT, "100", QueryElevationParams.ENABLE, "false", CommonParams.FL, "id, score, [elevated]"),
+        "//*[@name='ngroups'][.='3']", "//*[@name='matches'][.='6']"
+
+        , groups + "/lst[1]//doc[1]/str[@name='id'][.='6']", groups + "/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[1]//doc[2]/str[@name='id'][.='66']", groups + "/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[2]//doc[1]/str[@name='id'][.='7']", groups + "/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[2]//doc[2]/str[@name='id'][.='77']", groups + "/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[3]//doc[1]/str[@name='id'][.='2']", groups + "/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[3]//doc[2]/str[@name='id'][.='22']", groups + "/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']");
+
+    assertQ("elevated group query",
+        req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", GroupParams.GROUP_FIELD, "str_s", GroupParams.GROUP, "true", GroupParams.GROUP_TOTAL_COUNT,
+            "true", GroupParams.GROUP_LIMIT, "100", CommonParams.FL, "id, score, [elevated]"), "//*[@name='ngroups'][.='3']", "//*[@name='matches'][.='6']"
+
+        , groups + "/lst[1]//doc[1]/str[@name='id'][.='7']", groups + "/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']",
+        groups + "/lst[1]//doc[2]/str[@name='id'][.='77']", groups + "/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[2]//doc[1]/str[@name='id'][.='6']", groups + "/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[2]//doc[2]/str[@name='id'][.='66']", groups + "/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[3]//doc[1]/str[@name='id'][.='2']", groups + "/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[3]//doc[2]/str[@name='id'][.='22']", groups + "/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']");
+
+    assertQ("non-elevated because sorted group query",
+        req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.SORT, "id asc", GroupParams.GROUP_FIELD, "str_s", GroupParams.GROUP, "true",
+            GroupParams.GROUP_TOTAL_COUNT, "true", GroupParams.GROUP_LIMIT, "100", CommonParams.FL, "id, score, [elevated]"), "//*[@name='ngroups'][.='3']",
+        "//*[@name='matches'][.='6']"
+
+        , groups + "/lst[1]//doc[1]/str[@name='id'][.='2']", groups + "/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[1]//doc[2]/str[@name='id'][.='22']", groups + "/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[2]//doc[1]/str[@name='id'][.='6']", groups + "/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[2]//doc[2]/str[@name='id'][.='66']", groups + "/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[3]//doc[1]/str[@name='id'][.='7']", groups + "/lst[3]//doc[1]/bool[@name='[elevated]'][.='true']",
+        groups + "/lst[3]//doc[2]/str[@name='id'][.='77']", groups + "/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']");
+
+    assertQ("force-elevated sorted group query",
+        req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.SORT, "id asc", QueryElevationParams.FORCE_ELEVATION, "true",
+            GroupParams.GROUP_FIELD, "str_s", GroupParams.GROUP, "true", GroupParams.GROUP_TOTAL_COUNT, "true", GroupParams.GROUP_LIMIT, "100", CommonParams.FL,
+            "id, score, [elevated]"), "//*[@name='ngroups'][.='3']", "//*[@name='matches'][.='6']"
+
+        , groups + "/lst[1]//doc[1]/str[@name='id'][.='7']", groups + "/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']",
+        groups + "/lst[1]//doc[2]/str[@name='id'][.='77']", groups + "/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[2]//doc[1]/str[@name='id'][.='2']", groups + "/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[2]//doc[2]/str[@name='id'][.='22']", groups + "/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[3]//doc[1]/str[@name='id'][.='6']", groups + "/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[3]//doc[2]/str[@name='id'][.='66']", groups + "/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']");
+
+    assertQ("non-elevated because of sort within group query",
+        req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.SORT, "id asc", GroupParams.GROUP_SORT, "id desc", GroupParams.GROUP_FIELD,
+            "str_s", GroupParams.GROUP, "true", GroupParams.GROUP_TOTAL_COUNT, "true", GroupParams.GROUP_LIMIT, "100", CommonParams.FL,
+            "id, score, [elevated]"), "//*[@name='ngroups'][.='3']", "//*[@name='matches'][.='6']"
+
+        , groups + "/lst[1]//doc[1]/str[@name='id'][.='22']", groups + "/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[1]//doc[2]/str[@name='id'][.='2']", groups + "/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[2]//doc[1]/str[@name='id'][.='66']", groups + "/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[2]//doc[2]/str[@name='id'][.='6']", groups + "/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[3]//doc[1]/str[@name='id'][.='77']", groups + "/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[3]//doc[2]/str[@name='id'][.='7']", groups + "/lst[3]//doc[2]/bool[@name='[elevated]'][.='true']");
+
+    assertQ("force elevated sort within sorted group query",
+        req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.SORT, "id asc", GroupParams.GROUP_SORT, "id desc",
+            QueryElevationParams.FORCE_ELEVATION, "true", GroupParams.GROUP_FIELD, "str_s", GroupParams.GROUP, "true", GroupParams.GROUP_TOTAL_COUNT, "true",
+            GroupParams.GROUP_LIMIT, "100", CommonParams.FL, "id, score, [elevated]"), "//*[@name='ngroups'][.='3']", "//*[@name='matches'][.='6']"
+
+        , groups + "/lst[1]//doc[1]/str[@name='id'][.='7']", groups + "/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']",
+        groups + "/lst[1]//doc[2]/str[@name='id'][.='77']", groups + "/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[2]//doc[1]/str[@name='id'][.='22']", groups + "/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[2]//doc[2]/str[@name='id'][.='2']", groups + "/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+        , groups + "/lst[3]//doc[1]/str[@name='id'][.='66']", groups + "/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']",
+        groups + "/lst[3]//doc[2]/str[@name='id'][.='6']", groups + "/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']");
 
-      final String groups = "//arr[@name='groups']";
-
-      assertQ("non-elevated group query",
-              req(CommonParams.Q, "AAAA",
-                  CommonParams.QT, "/elevate",
-                  GroupParams.GROUP_FIELD, "str_s",
-                  GroupParams.GROUP, "true",
-                  GroupParams.GROUP_TOTAL_COUNT, "true",
-                  GroupParams.GROUP_LIMIT, "100",
-                  QueryElevationParams.ENABLE, "false",
-                  CommonParams.FL, "id, score, [elevated]")
-              , "//*[@name='ngroups'][.='3']"
-              , "//*[@name='matches'][.='6']"
-
-              , groups +"/lst[1]//doc[1]/str[@name='id'][.='6']"
-              , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[1]//doc[2]/str[@name='id'][.='66']"
-              , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[2]//doc[1]/str[@name='id'][.='7']"
-              , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[2]//doc[2]/str[@name='id'][.='77']"
-              , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[3]//doc[1]/str[@name='id'][.='2']"
-              , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[3]//doc[2]/str[@name='id'][.='22']"
-              , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
-              );
-
-      assertQ("elevated group query",
-              req(CommonParams.Q, "AAAA",
-                  CommonParams.QT, "/elevate",
-                  GroupParams.GROUP_FIELD, "str_s",
-                  GroupParams.GROUP, "true",
-                  GroupParams.GROUP_TOTAL_COUNT, "true",
-                  GroupParams.GROUP_LIMIT, "100",
-                  CommonParams.FL, "id, score, [elevated]")
-              , "//*[@name='ngroups'][.='3']"
-              , "//*[@name='matches'][.='6']"
-
-              , groups +"/lst[1]//doc[1]/str[@name='id'][.='7']"
-              , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
-              , groups +"/lst[1]//doc[2]/str[@name='id'][.='77']"
-              , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[2]//doc[1]/str[@name='id'][.='6']"
-              , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[2]//doc[2]/str[@name='id'][.='66']"
-              , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[3]//doc[1]/str[@name='id'][.='2']"
-              , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[3]//doc[2]/str[@name='id'][.='22']"
-              , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
-              );
-
-      assertQ("non-elevated because sorted group query",
-              req(CommonParams.Q, "AAAA",
-                  CommonParams.QT, "/elevate",
-                  CommonParams.SORT, "id asc",
-                  GroupParams.GROUP_FIELD, "str_s",
-                  GroupParams.GROUP, "true",
-                  GroupParams.GROUP_TOTAL_COUNT, "true",
-                  GroupParams.GROUP_LIMIT, "100",
-                  CommonParams.FL, "id, score, [elevated]")
-              , "//*[@name='ngroups'][.='3']"
-              , "//*[@name='matches'][.='6']"
-
-              , groups +"/lst[1]//doc[1]/str[@name='id'][.='2']"
-              , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[1]//doc[2]/str[@name='id'][.='22']"
-              , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[2]//doc[1]/str[@name='id'][.='6']"
-              , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[2]//doc[2]/str[@name='id'][.='66']"
-              , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[3]//doc[1]/str[@name='id'][.='7']"
-              , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='true']"
-              , groups +"/lst[3]//doc[2]/str[@name='id'][.='77']"
-              , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
-              );
-
-      assertQ("force-elevated sorted group query",
-              req(CommonParams.Q, "AAAA",
-                  CommonParams.QT, "/elevate",
-                  CommonParams.SORT, "id asc",
-                  QueryElevationParams.FORCE_ELEVATION, "true",
-                  GroupParams.GROUP_FIELD, "str_s",
-                  GroupParams.GROUP, "true",
-                  GroupParams.GROUP_TOTAL_COUNT, "true",
-                  GroupParams.GROUP_LIMIT, "100",
-                  CommonParams.FL, "id, score, [elevated]")
-              , "//*[@name='ngroups'][.='3']"
-              , "//*[@name='matches'][.='6']"
-
-              , groups +"/lst[1]//doc[1]/str[@name='id'][.='7']"
-              , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
-              , groups +"/lst[1]//doc[2]/str[@name='id'][.='77']"
-              , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[2]//doc[1]/str[@name='id'][.='2']"
-              , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[2]//doc[2]/str[@name='id'][.='22']"
-              , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[3]//doc[1]/str[@name='id'][.='6']"
-              , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[3]//doc[2]/str[@name='id'][.='66']"
-              , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
-              );
-
-
-      assertQ("non-elevated because of sort within group query",
-              req(CommonParams.Q, "AAAA",
-                  CommonParams.QT, "/elevate",
-                  CommonParams.SORT, "id asc",
-                  GroupParams.GROUP_SORT, "id desc",
-                  GroupParams.GROUP_FIELD, "str_s",
-                  GroupParams.GROUP, "true",
-                  GroupParams.GROUP_TOTAL_COUNT, "true",
-                  GroupParams.GROUP_LIMIT, "100",
-                  CommonParams.FL, "id, score, [elevated]")
-              , "//*[@name='ngroups'][.='3']"
-              , "//*[@name='matches'][.='6']"
-
-              , groups +"/lst[1]//doc[1]/str[@name='id'][.='22']"
-              , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[1]//doc[2]/str[@name='id'][.='2']"
-              , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[2]//doc[1]/str[@name='id'][.='66']"
-              , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[2]//doc[2]/str[@name='id'][.='6']"
-              , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[3]//doc[1]/str[@name='id'][.='77']"
-              , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[3]//doc[2]/str[@name='id'][.='7']"
-              , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='true']"
-              );
-
-
-      assertQ("force elevated sort within sorted group query",
-              req(CommonParams.Q, "AAAA",
-                  CommonParams.QT, "/elevate",
-                  CommonParams.SORT, "id asc",
-                  GroupParams.GROUP_SORT, "id desc",
-                  QueryElevationParams.FORCE_ELEVATION, "true",
-                  GroupParams.GROUP_FIELD, "str_s",
-                  GroupParams.GROUP, "true",
-                  GroupParams.GROUP_TOTAL_COUNT, "true",
-                  GroupParams.GROUP_LIMIT, "100",
-                  CommonParams.FL, "id, score, [elevated]")
-              , "//*[@name='ngroups'][.='3']"
-              , "//*[@name='matches'][.='6']"
-
-              , groups +"/lst[1]//doc[1]/str[@name='id'][.='7']"
-              , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
-              , groups +"/lst[1]//doc[2]/str[@name='id'][.='77']"
-              , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[2]//doc[1]/str[@name='id'][.='22']"
-              , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[2]//doc[2]/str[@name='id'][.='2']"
-              , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
-
-              , groups +"/lst[3]//doc[1]/str[@name='id'][.='66']"
-              , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
-              , groups +"/lst[3]//doc[2]/str[@name='id'][.='6']"
-              , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
-              );
-
-    } finally {
-      delete();
-    }
   }
 
-  @Test
-  public void testTrieFieldType() throws Exception {
-    try {
-      init("schema.xml");
-      clearIndex();
-      assertU(commit());
-      assertU(adoc("id", "1", "text", "XXXX XXXX",           "str_s", "a" ));
-      assertU(adoc("id", "2", "text", "YYYY",      "str_s", "b" ));
-      assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c" ));
-
-      assertU(adoc("id", "4", "text", "XXXX XXXX",                 "str_s", "x" ));
-      assertU(adoc("id", "5", "text", "YYYY YYYY",         "str_s", "y" ));
-      assertU(adoc("id", "6", "text", "XXXX XXXX", "str_s", "z" ));
-      assertU(adoc("id", "7", "text", "AAAA", "str_s", "a" ));
-      assertU(adoc("id", "8", "text", "AAAA", "str_s", "a" ));
-      assertU(adoc("id", "9", "text", "AAAA AAAA", "str_s", "a" ));
-      assertU(commit());
+  @Test public void testTrieFieldType() throws Exception {
+
+    init("schema.xml");
+    clearIndex();
+    assertU(commit());
+    assertU(adoc("id", "1", "text", "XXXX XXXX", "str_s", "a"));
+    assertU(adoc("id", "2", "text", "YYYY", "str_s", "b"));
+    assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c"));
+
+    assertU(adoc("id", "4", "text", "XXXX XXXX", "str_s", "x"));
+    assertU(adoc("id", "5", "text", "YYYY YYYY", "str_s", "y"));
+    assertU(adoc("id", "6", "text", "XXXX XXXX", "str_s", "z"));
+    assertU(adoc("id", "7", "text", "AAAA", "str_s", "a"));
+    assertU(adoc("id", "8", "text", "AAAA", "str_s", "a"));
+    assertU(adoc("id", "9", "text", "AAAA AAAA", "str_s", "a"));
+    assertU(commit());
+
+    assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='3']",
+        "//result/doc[1]/str[@name='id'][.='7']", "//result/doc[2]/str[@name='id'][.='8']", "//result/doc[3]/str[@name='id'][.='9']",
+        "//result/doc[1]/bool[@name='[elevated]'][.='true']", "//result/doc[2]/bool[@name='[elevated]'][.='false']",
+        "//result/doc[3]/bool[@name='[elevated]'][.='false']");
 
-      assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]")
-              ,"//*[@numFound='3']"
-              ,"//result/doc[1]/str[@name='id'][.='7']"
-              ,"//result/doc[2]/str[@name='id'][.='8']"
-              ,"//result/doc[3]/str[@name='id'][.='9']",
-              "//result/doc[1]/bool[@name='[elevated]'][.='true']",
-              "//result/doc[2]/bool[@name='[elevated]'][.='false']",
-              "//result/doc[3]/bool[@name='[elevated]'][.='false']"
-              );
-    } finally{
-      delete();
-    }
   }
 
+  @Test public void testInterface() throws Exception {
 
-  @Test
-  public void testInterface() throws Exception {
-    try {
-      init("schema12.xml");
-      SolrCore core = h.getCore();
+    init("schema12.xml");
+    SolrCore core = h.getCore();
 
-      NamedList<String> args = new NamedList<>();
-      args.add(QueryElevationComponent.FIELD_TYPE, "string");
-      args.add(QueryElevationComponent.CONFIG_FILE, "elevate.xml");
+    NamedList<String> args = new NamedList<>();
+    args.add(QueryElevationComponent.FIELD_TYPE, "string");
+    args.add(QueryElevationComponent.CONFIG_FILE, "elevate.xml");
 
-      IndexReader reader;
-      try (SolrQueryRequest req = req()) {
-        reader = req.getSearcher().getIndexReader();
-      }
+    IndexReader reader;
+    try (SolrQueryRequest req = req()) {
+      reader = req.getSearcher().getIndexReader();
+    }
 
-      try (QueryElevationComponent comp = new QueryElevationComponent()) {
-        comp.init(args);
-        comp.inform(core);
+    try (QueryElevationComponent comp = new QueryElevationComponent()) {
+      comp.init(args);
+      comp.inform(core);
 
-        QueryElevationComponent.ElevationProvider elevationProvider = comp.getElevationProvider(reader, core);
+      QueryElevationComponent.ElevationProvider elevationProvider = comp.getElevationProvider(reader, core);
 
-        // Make sure the boosts loaded properly
-        assertEquals(11, elevationProvider.size());
-        assertEquals(1, elevationProvider.getElevationForQuery("XXXX").elevatedIds.size());
-        assertEquals(2, elevationProvider.getElevationForQuery("YYYY").elevatedIds.size());
-        assertEquals(3, elevationProvider.getElevationForQuery("ZZZZ").elevatedIds.size());
-        assertNull(elevationProvider.getElevationForQuery("xxxx"));
-        assertNull(elevationProvider.getElevationForQuery("yyyy"));
-        assertNull(elevationProvider.getElevationForQuery("zzzz"));
-      }
+      // Make sure the boosts loaded properly
+      assertEquals(11, elevationProvider.size());
+      assertEquals(1, elevationProvider.getElevationForQuery("XXXX").elevatedIds.size());
+      assertEquals(2, elevationProvider.getElevationForQuery("YYYY").elevatedIds.size());
+      assertEquals(3, elevationProvider.getElevationForQuery("ZZZZ").elevatedIds.size());
+      assertNull(elevationProvider.getElevationForQuery("xxxx"));
+      assertNull(elevationProvider.getElevationForQuery("yyyy"));
+      assertNull(elevationProvider.getElevationForQuery("zzzz"));
+    }
 
-      // Now test the same thing with a lowercase filter: 'lowerfilt'
-      args = new NamedList<>();
-      args.add(QueryElevationComponent.FIELD_TYPE, "lowerfilt");
-      args.add(QueryElevationComponent.CONFIG_FILE, "elevate.xml");
+    // Now test the same thing with a lowercase filter: 'lowerfilt'
+    args = new NamedList<>();
+    args.add(QueryElevationComponent.FIELD_TYPE, "lowerfilt");
+    args.add(QueryElevationComponent.CONFIG_FILE, "elevate.xml");
 
-      try (QueryElevationComponent comp = new QueryElevationComponent()) {
-        comp.init(args);
-        comp.inform(core);
-        QueryElevationComponent.ElevationProvider elevationProvider = comp.getElevationProvider(reader, core);
-        assertEquals(11, elevationProvider.size());
-        assertEquals(1, elevationProvider.getElevationForQuery("XXXX").elevatedIds.size());
-        assertEquals(2, elevationProvider.getElevationForQuery("YYYY").elevatedIds.size());
-        assertEquals(3, elevationProvider.getElevationForQuery("ZZZZ").elevatedIds.size());
-        assertEquals(1, elevationProvider.getElevationForQuery("xxxx").elevatedIds.size());
-        assertEquals(2, elevationProvider.getElevationForQuery("yyyy").elevatedIds.size());
-        assertEquals(3, elevationProvider.getElevationForQuery("zzzz").elevatedIds.size());
-
-        assertEquals("xxxx", comp.analyzeQuery("XXXX"));
-        assertEquals("xxxxyyyy", comp.analyzeQuery("XXXX YYYY"));
-
-        assertQ("Make sure QEC handles null queries", req("qt", "/elevate", "q.alt", "*:*", "defType", "dismax"),
-            "//*[@numFound='0']");
-      }
-      core.close();
-    } finally {
-      delete();
+    try (QueryElevationComponent comp = new QueryElevationComponent()) {
+      comp.init(args);
+      comp.inform(core);
+      QueryElevationComponent.ElevationProvider elevationProvider = comp.getElevationProvider(reader, core);
+      assertEquals(11, elevationProvider.size());
+      assertEquals(1, elevationProvider.getElevationForQuery("XXXX").elevatedIds.size());
+      assertEquals(2, elevationProvider.getElevationForQuery("YYYY").elevatedIds.size());
+      assertEquals(3, elevationProvider.getElevationForQuery("ZZZZ").elevatedIds.size());
+      assertEquals(1, elevationProvider.getElevationForQuery("xxxx").elevatedIds.size());
+      assertEquals(2, elevationProvider.getElevationForQuery("yyyy").elevatedIds.size());
+      assertEquals(3, elevationProvider.getElevationForQuery("zzzz").elevatedIds.size());
+
+      assertEquals("xxxx", comp.analyzeQuery("XXXX"));
+      assertEquals("xxxxyyyy", comp.analyzeQuery("XXXX YYYY"));
+
+      assertQ("Make sure QEC handles null queries", req("qt", "/elevate", "q.alt", "*:*", "defType", "dismax"), "//*[@numFound='0']");
     }
+    core.close();
 
   }
 
-  @Test
-  public void testMarker() throws Exception {
-    try {
-      init("schema12.xml");
-      assertU(adoc("id", "1", "title", "XXXX XXXX", "str_s1", "a"));
-      assertU(adoc("id", "2", "title", "YYYY", "str_s1", "b"));
-      assertU(adoc("id", "3", "title", "ZZZZ", "str_s1", "c"));
-
-      assertU(adoc("id", "4", "title", "XXXX XXXX", "str_s1", "x"));
-      assertU(adoc("id", "5", "title", "YYYY YYYY", "str_s1", "y"));
-      assertU(adoc("id", "6", "title", "XXXX XXXX", "str_s1", "z"));
-      assertU(adoc("id", "7", "title", "AAAA", "str_s1", "a"));
-      assertU(commit());
+  @Test public void testMarker() throws Exception {
+
+    init("schema12.xml");
+    assertU(adoc("id", "1", "title", "XXXX XXXX", "str_s1", "a"));
+    assertU(adoc("id", "2", "title", "YYYY", "str_s1", "b"));
+    assertU(adoc("id", "3", "title", "ZZZZ", "str_s1", "c"));
+
+    assertU(adoc("id", "4", "title", "XXXX XXXX", "str_s1", "x"));
+    assertU(adoc("id", "5", "title", "YYYY YYYY", "str_s1", "y"));
+    assertU(adoc("id", "6", "title", "XXXX XXXX", "str_s1", "z"));
+    assertU(adoc("id", "7", "title", "AAAA", "str_s1", "a"));
+    assertU(commit());
+
+    assertQ("", req(CommonParams.Q, "XXXX", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='3']",
+        "//result/doc[1]/str[@name='id'][.='1']", "//result/doc[2]/str[@name='id'][.='4']", "//result/doc[3]/str[@name='id'][.='6']",
+        "//result/doc[1]/bool[@name='[elevated]'][.='true']", "//result/doc[2]/bool[@name='[elevated]'][.='false']",
+        "//result/doc[3]/bool[@name='[elevated]'][.='false']");
+
+    assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='1']",
+        "//result/doc[1]/str[@name='id'][.='7']", "//result/doc[1]/bool[@name='[elevated]'][.='true']");
+
+    assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elev]"), "//*[@numFound='1']",
+        "//result/doc[1]/str[@name='id'][.='7']", "not(//result/doc[1]/bool[@name='[elevated]'][.='false'])",
+        "not(//result/doc[1]/bool[@name='[elev]'][.='false'])"
+        // even though we asked for elev, there is no Transformer registered w/ that, so we shouldn't get a result
+    );
 
-      assertQ("", req(CommonParams.Q, "XXXX", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]")
-          , "//*[@numFound='3']"
-          , "//result/doc[1]/str[@name='id'][.='1']"
-          , "//result/doc[2]/str[@name='id'][.='4']"
-          , "//result/doc[3]/str[@name='id'][.='6']",
-          "//result/doc[1]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[2]/bool[@name='[elevated]'][.='false']",
-          "//result/doc[3]/bool[@name='[elevated]'][.='false']"
-      );
-
-      assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]")
-              ,"//*[@numFound='1']"
-              ,"//result/doc[1]/str[@name='id'][.='7']",
-              "//result/doc[1]/bool[@name='[elevated]'][.='true']"
-              );
-
-      assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elev]")
-          , "//*[@numFound='1']"
-          , "//result/doc[1]/str[@name='id'][.='7']",
-          "not(//result/doc[1]/bool[@name='[elevated]'][.='false'])",
-          "not(//result/doc[1]/bool[@name='[elev]'][.='false'])" // even though we asked for elev, there is no Transformer registered w/ that, so we shouldn't get a result
-      );
-    } finally {
-      delete();
-    }
   }
 
-  @Test
-  public void testMarkExcludes() throws Exception {
-    try {
-      init("schema12.xml");
-      assertU(adoc("id", "1", "title", "XXXX XXXX", "str_s1", "a"));
-      assertU(adoc("id", "2", "title", "YYYY", "str_s1", "b"));
-      assertU(adoc("id", "3", "title", "ZZZZ", "str_s1", "c"));
+  @Test public void testMarkExcludes() throws Exception {
 
-      assertU(adoc("id", "4", "title", "XXXX XXXX", "str_s1", "x"));
-      assertU(adoc("id", "5", "title", "YYYY YYYY", "str_s1", "y"));
-      assertU(adoc("id", "6", "title", "XXXX XXXX", "str_s1", "z"));
-      assertU(adoc("id", "7", "title", "AAAA", "str_s1", "a"));
+    init("schema12.xml");
+    assertU(adoc("id", "1", "title", "XXXX XXXX", "str_s1", "a"));
+    assertU(adoc("id", "2", "title", "YYYY", "str_s1", "b"));
+    assertU(adoc("id", "3", "title", "ZZZZ", "str_s1", "c"));
 
-      assertU(adoc("id", "8", "title", " QQQQ trash trash", "str_s1", "q"));
-      assertU(adoc("id", "9", "title", " QQQQ QQQQ  trash", "str_s1", "r"));
-      assertU(adoc("id", "10", "title", "QQQQ QQQQ  QQQQ ", "str_s1", "s"));
+    assertU(adoc("id", "4", "title", "XXXX XXXX", "str_s1", "x"));
+    assertU(adoc("id", "5", "title", "YYYY YYYY", "str_s1", "y"));
+    assertU(adoc("id", "6", "title", "XXXX XXXX", "str_s1", "z"));
+    assertU(adoc("id", "7", "title", "AAAA", "str_s1", "a"));
 
-      assertU(commit());
+    assertU(adoc("id", "8", "title", " QQQQ trash trash", "str_s1", "q"));
+    assertU(adoc("id", "9", "title", " QQQQ QQQQ  trash", "str_s1", "r"));
+    assertU(adoc("id", "10", "title", "QQQQ QQQQ  QQQQ ", "str_s1", "s"));
+
+    assertU(commit());
+
+    assertQ("", req(CommonParams.Q, "XXXX XXXX", CommonParams.QT, "/elevate", QueryElevationParams.MARK_EXCLUDES, "true", "indent", "true", CommonParams.FL,
+        "id, score, [excluded]"), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='5']", "//result/doc[2]/str[@name='id'][.='1']",
+        "//result/doc[3]/str[@name='id'][.='4']", "//result/doc[4]/str[@name='id'][.='6']", "//result/doc[1]/bool[@name='[excluded]'][.='false']",
+        "//result/doc[2]/bool[@name='[excluded]'][.='false']", "//result/doc[3]/bool[@name='[excluded]'][.='false']",
+        "//result/doc[4]/bool[@name='[excluded]'][.='true']");
+
+    //ask for excluded as a field, but don't actually request the MARK_EXCLUDES
+    //thus, number 6 should not be returned, b/c it is excluded
+    assertQ("",
+        req(CommonParams.Q, "XXXX XXXX", CommonParams.QT, "/elevate", QueryElevationParams.MARK_EXCLUDES, "false", CommonParams.FL, "id, score, [excluded]"),
+        "//*[@numFound='3']", "//result/doc[1]/str[@name='id'][.='5']", "//result/doc[2]/str[@name='id'][.='1']", "//result/doc[3]/str[@name='id'][.='4']",
+        "//result/doc[1]/bool[@name='[excluded]'][.='false']", "//result/doc[2]/bool[@name='[excluded]'][.='false']",
+        "//result/doc[3]/bool[@name='[excluded]'][.='false']");
+
+    // test that excluded results are on the same positions in the result list
+    // as when elevation component is disabled
+    // (i.e. test that elevation component with MARK_EXCLUDES does not boost
+    // excluded results)
+    assertQ("", req(CommonParams.Q, "QQQQ", CommonParams.QT, "/elevate", QueryElevationParams.ENABLE, "false", "indent", "true", CommonParams.FL, "id, score"),
+        "//*[@numFound='3']", "//result/doc[1]/str[@name='id'][.='10']", "//result/doc[2]/str[@name='id'][.='9']", "//result/doc[3]/str[@name='id'][.='8']");
+    assertQ("", req(CommonParams.Q, "QQQQ", CommonParams.QT, "/elevate", QueryElevationParams.MARK_EXCLUDES, "true", "indent", "true", CommonParams.FL,
+        "id, score, [excluded]"), "//*[@numFound='3']", "//result/doc[1]/str[@name='id'][.='10']", "//result/doc[2]/str[@name='id'][.='9']",
+        "//result/doc[3]/str[@name='id'][.='8']", "//result/doc[1]/bool[@name='[excluded]'][.='true']", "//result/doc[2]/bool[@name='[excluded]'][.='false']",
+        "//result/doc[3]/bool[@name='[excluded]'][.='false']");
 
-      assertQ("", req(CommonParams.Q, "XXXX XXXX", CommonParams.QT, "/elevate",
-          QueryElevationParams.MARK_EXCLUDES, "true",
-          "indent", "true",
-          CommonParams.FL, "id, score, [excluded]")
-          , "//*[@numFound='4']"
-          , "//result/doc[1]/str[@name='id'][.='5']"
-          , "//result/doc[2]/str[@name='id'][.='1']"
-          , "//result/doc[3]/str[@name='id'][.='4']"
-          , "//result/doc[4]/str[@name='id'][.='6']",
-          "//result/doc[1]/bool[@name='[excluded]'][.='false']",
-          "//result/doc[2]/bool[@name='[excluded]'][.='false']",
-          "//result/doc[3]/bool[@name='[excluded]'][.='false']",
-          "//result/doc[4]/bool[@name='[excluded]'][.='true']"
-      );
-
-      //ask for excluded as a field, but don't actually request the MARK_EXCLUDES
-      //thus, number 6 should not be returned, b/c it is excluded
-      assertQ("", req(CommonParams.Q, "XXXX XXXX", CommonParams.QT, "/elevate",
-          QueryElevationParams.MARK_EXCLUDES, "false",
-          CommonParams.FL, "id, score, [excluded]")
-          , "//*[@numFound='3']"
-          , "//result/doc[1]/str[@name='id'][.='5']"
-          , "//result/doc[2]/str[@name='id'][.='1']"
-          , "//result/doc[3]/str[@name='id'][.='4']",
-          "//result/doc[1]/bool[@name='[excluded]'][.='false']",
-          "//result/doc[2]/bool[@name='[excluded]'][.='false']",
-          "//result/doc[3]/bool[@name='[excluded]'][.='false']"
-      );
-
-      // test that excluded results are on the same positions in the result list
-      // as when elevation component is disabled
-      // (i.e. test that elevation component with MARK_EXCLUDES does not boost
-      // excluded results)
-      assertQ("", req(CommonParams.Q, "QQQQ", CommonParams.QT, "/elevate",
-          QueryElevationParams.ENABLE, "false",
-          "indent", "true",
-          CommonParams.FL, "id, score")
-          , "//*[@numFound='3']"
-          , "//result/doc[1]/str[@name='id'][.='10']"
-          , "//result/doc[2]/str[@name='id'][.='9']"
-          , "//result/doc[3]/str[@name='id'][.='8']"
-      );
-      assertQ("", req(CommonParams.Q, "QQQQ", CommonParams.QT, "/elevate",
-          QueryElevationParams.MARK_EXCLUDES, "true",
-          "indent", "true",
-          CommonParams.FL, "id, score, [excluded]")
-          , "//*[@numFound='3']"
-          , "//result/doc[1]/str[@name='id'][.='10']"
-          , "//result/doc[2]/str[@name='id'][.='9']"
-          , "//result/doc[3]/str[@name='id'][.='8']",
-          "//result/doc[1]/bool[@name='[excluded]'][.='true']",
-          "//result/doc[2]/bool[@name='[excluded]'][.='false']",
-          "//result/doc[3]/bool[@name='[excluded]'][.='false']"
-      );
-    } finally {
-      delete();
-    }
   }
 
-  @Test
-  public void testSorting() throws Exception {
+  @Test public void testSorting() throws Exception {
 
     init("schema12.xml");
     try (SolrCore core = h.getCore()) {
@@ -571,38 +401,40 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 {
       QueryElevationComponent booster = (QueryElevationComponent) core.getSearchComponent("elevate");
       IndexReader reader = core.withSearcher(SolrIndexSearcher::getIndexReader);
 
-      assertQ("Make sure standard sort works as expected", req(baseParams), "//*[@numFound='3']", "//result/doc[1]/str[@name='id'][.='c']", "//result/doc[2]/str[@name='id'][.='b']",
-          "//result/doc[3]/str[@name='id'][.='a']");
+      assertQ("Make sure standard sort works as expected", req(baseParams), "//*[@numFound='3']", "//result/doc[1]/str[@name='id'][.='c']",
+          "//result/doc[2]/str[@name='id'][.='b']", "//result/doc[3]/str[@name='id'][.='a']");
 
       // Explicitly set what gets boosted
       booster.setTopQueryResults(reader, query, false, new String[] {"x", "y", "z"}, null);
 
-      assertQ("All six should make it", req(baseParams), "//*[@numFound='6']", "//result/doc[1]/str[@name='id'][.='x']", "//result/doc[2]/str[@name='id'][.='y']",
-          "//result/doc[3]/str[@name='id'][.='z']", "//result/doc[4]/str[@name='id'][.='c']", "//result/doc[5]/str[@name='id'][.='b']", "//result/doc[6]/str[@name='id'][.='a']");
+      assertQ("All six should make it", req(baseParams), "//*[@numFound='6']", "//result/doc[1]/str[@name='id'][.='x']",
+          "//result/doc[2]/str[@name='id'][.='y']", "//result/doc[3]/str[@name='id'][.='z']", "//result/doc[4]/str[@name='id'][.='c']",
+          "//result/doc[5]/str[@name='id'][.='b']", "//result/doc[6]/str[@name='id'][.='a']");
 
       // now switch the order:
       booster.setTopQueryResults(reader, query, false, new String[] {"a", "x"}, null);
-      assertQ(req(baseParams), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='a']", "//result/doc[2]/str[@name='id'][.='x']", "//result/doc[3]/str[@name='id'][.='c']",
-          "//result/doc[4]/str[@name='id'][.='b']");
+      assertQ(req(baseParams), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='a']", "//result/doc[2]/str[@name='id'][.='x']",
+          "//result/doc[3]/str[@name='id'][.='c']", "//result/doc[4]/str[@name='id'][.='b']");
 
       // Try normal sort by 'id'
       // default 'forceBoost' should be false
       assertFalse(booster.forceElevation);
-      assertQ(req(baseParams, "sort", "id asc"), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='a']", "//result/doc[2]/str[@name='id'][.='b']", "//result/doc[3]/str[@name='id'][.='c']",
-          "//result/doc[4]/str[@name='id'][.='x']");
+      assertQ(req(baseParams, "sort", "id asc"), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='a']", "//result/doc[2]/str[@name='id'][.='b']",
+          "//result/doc[3]/str[@name='id'][.='c']", "//result/doc[4]/str[@name='id'][.='x']");
 
-      assertQ("useConfiguredElevatedOrder=false", req(baseParams, "sort", "str_s1 asc,id desc", "useConfiguredElevatedOrder", "false"), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='x']"
+      assertQ("useConfiguredElevatedOrder=false", req(baseParams, "sort", "str_s1 asc,id desc", "useConfiguredElevatedOrder", "false"), "//*[@numFound='4']",
+          "//result/doc[1]/str[@name='id'][.='x']"
           //group1
           , "//result/doc[2]/str[@name='id'][.='a']"//group1
           , "//result/doc[3]/str[@name='id'][.='c']", "//result/doc[4]/str[@name='id'][.='b']");
 
       booster.forceElevation = true;
-      assertQ(req(baseParams, "sort", "id asc"), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='a']", "//result/doc[2]/str[@name='id'][.='x']", "//result/doc[3]/str[@name='id'][.='b']",
-          "//result/doc[4]/str[@name='id'][.='c']");
+      assertQ(req(baseParams, "sort", "id asc"), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='a']", "//result/doc[2]/str[@name='id'][.='x']",
+          "//result/doc[3]/str[@name='id'][.='b']", "//result/doc[4]/str[@name='id'][.='c']");
 
       booster.forceElevation = true;
-      assertQ("useConfiguredElevatedOrder=false and forceElevation", req(baseParams, "sort", "id desc", "useConfiguredElevatedOrder", "false"), "//*[@numFound='4']",
-          "//result/doc[1]/str[@name='id'][.='x']" // force elevated
+      assertQ("useConfiguredElevatedOrder=false and forceElevation", req(baseParams, "sort", "id desc", "useConfiguredElevatedOrder", "false"),
+          "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='x']" // force elevated
           , "//result/doc[2]/str[@name='id'][.='a']" // force elevated
           , "//result/doc[3]/str[@name='id'][.='c']", "//result/doc[4]/str[@name='id'][.='b']");
 
@@ -612,19 +444,20 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 {
 
       // Test exclusion
       booster.setTopQueryResults(reader, query, false, new String[] {"x"}, new String[] {"a"});
-      assertQ(req(baseParams), "//*[@numFound='3']", "//result/doc[1]/str[@name='id'][.='x']", "//result/doc[2]/str[@name='id'][.='c']", "//result/doc[3]/str[@name='id'][.='b']");
+      assertQ(req(baseParams), "//*[@numFound='3']", "//result/doc[1]/str[@name='id'][.='x']", "//result/doc[2]/str[@name='id'][.='c']",
+          "//result/doc[3]/str[@name='id'][.='b']");
 
       // Test setting ids and excludes from http parameters
 
       booster.clearElevationProviderCache();
-      assertQ("All five should make it", req(baseParams, "elevateIds", "x,y,z", "excludeIds", "b"), "//*[@numFound='5']", "//result/doc[1]/str[@name='id'][.='x']",
-          "//result/doc[2]/str[@name='id'][.='y']", "//result/doc[3]/str[@name='id'][.='z']", "//result/doc[4]/str[@name='id'][.='c']", "//result/doc[5]/str[@name='id'][.='a']");
+      assertQ("All five should make it", req(baseParams, "elevateIds", "x,y,z", "excludeIds", "b"), "//*[@numFound='5']",
+          "//result/doc[1]/str[@name='id'][.='x']", "//result/doc[2]/str[@name='id'][.='y']", "//result/doc[3]/str[@name='id'][.='z']",
+          "//result/doc[4]/str[@name='id'][.='c']", "//result/doc[5]/str[@name='id'][.='a']");
 
-      assertQ("All four should make it", req(baseParams, "elevateIds", "x,z,y", "excludeIds", "b,c"), "//*[@numFound='4']", "//result/doc[1]/str[@name='id'][.='x']",
-          "//result/doc[2]/str[@name='id'][.='z']", "//result/doc[3]/str[@name='id'][.='y']", "//result/doc[4]/str[@name='id'][.='a']");
+      assertQ("All four should make it", req(baseParams, "elevateIds", "x,z,y", "excludeIds", "b,c"), "//*[@numFound='4']",
+          "//result/doc[1]/str[@name='id'][.='x']", "//result/doc[2]/str[@name='id'][.='z']", "//result/doc[3]/str[@name='id'][.='y']",
+          "//result/doc[4]/str[@name='id'][.='a']");
 
-    } finally {
-      delete();
     }
   }
 
@@ -647,8 +480,7 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 {
     }
   }
 
-  @Test
-  public void testElevationReloading() throws Exception {
+  @Test public void testElevationReloading() throws Exception {
 
     init("schema12.xml");
     try (SolrCore core = h.getCore()) {
@@ -703,147 +535,84 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 {
         assertNull(elevationProvider.getElevationForQuery("bbb"));
         assertTrue(elevationProvider.getElevationForQuery("ccc").elevatedIds.contains(new BytesRef("C")));
       }
-    } finally {
-      delete();
     }
   }
 
-  @Test
-  public void testWithLocalParam() throws Exception {
-    try {
-      init("schema11.xml");
-      clearIndex();
-      assertU(commit());
-      assertU(adoc("id", "7", "text", "AAAA", "str_s", "a"));
-      assertU(commit());
+  @Test public void testWithLocalParam() throws Exception {
+
+    init("schema11.xml");
+    clearIndex();
+    assertU(commit());
+    assertU(adoc("id", "7", "text", "AAAA", "str_s", "a"));
+    assertU(commit());
+
+    assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='1']",
+        "//result/doc[1]/str[@name='id'][.='7']", "//result/doc[1]/bool[@name='[elevated]'][.='true']");
+    assertQ("", req(CommonParams.Q, "{!q.op=AND}AAAA", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='1']",
+        "//result/doc[1]/str[@name='id'][.='7']", "//result/doc[1]/bool[@name='[elevated]'][.='true']");
+    assertQ("", req(CommonParams.Q, "{!q.op=AND v='AAAA'}", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='1']",
+        "//result/doc[1]/str[@name='id'][.='7']", "//result/doc[1]/bool[@name='[elevated]'][.='true']");
 
-      assertQ("", req(CommonParams.Q, "AAAA", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]")
-          , "//*[@numFound='1']"
-          , "//result/doc[1]/str[@name='id'][.='7']"
-          , "//result/doc[1]/bool[@name='[elevated]'][.='true']"
-      );
-      assertQ("", req(CommonParams.Q, "{!q.op=AND}AAAA", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]")
-          , "//*[@numFound='1']"
-          , "//result/doc[1]/str[@name='id'][.='7']"
-          , "//result/doc[1]/bool[@name='[elevated]'][.='true']"
-      );
-      assertQ("", req(CommonParams.Q, "{!q.op=AND v='AAAA'}", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]")
-          , "//*[@numFound='1']"
-          , "//result/doc[1]/str[@name='id'][.='7']"
-          , "//result/doc[1]/bool[@name='[elevated]'][.='true']"
-      );
-    } finally {
-      delete();
-    }
   }
 
-  @Test
-  public void testQuerySubsetMatching() throws Exception {
-    try {
-      init("schema12.xml");
-      assertU(adoc("id", "1", "title", "XXXX", "str_s1", "a"));
-      assertU(adoc("id", "2", "title", "YYYY", "str_s1", "b"));
-      assertU(adoc("id", "3", "title", "ZZZZ", "str_s1", "c"));
-
-      assertU(adoc("id", "4", "title", "XXXX XXXX", "str_s1", "x"));
-      assertU(adoc("id", "5", "title", "YYYY YYYY", "str_s1", "y"));
-      assertU(adoc("id", "6", "title", "XXXX XXXX", "str_s1", "z"));
-      assertU(adoc("id", "7", "title", "AAAA", "str_s1", "a"));
-
-      assertU(adoc("id", "10", "title", "RR", "str_s1", "r"));
-      assertU(adoc("id", "11", "title", "SS", "str_s1", "r"));
-      assertU(adoc("id", "12", "title", "TT", "str_s1", "r"));
-      assertU(adoc("id", "13", "title", "UU", "str_s1", "r"));
-      assertU(adoc("id", "14", "title", "VV", "str_s1", "r"));
-      assertU(commit());
+  @Test public void testQuerySubsetMatching() throws Exception {
+
+    init("schema12.xml");
+    assertU(adoc("id", "1", "title", "XXXX", "str_s1", "a"));
+    assertU(adoc("id", "2", "title", "YYYY", "str_s1", "b"));
+    assertU(adoc("id", "3", "title", "ZZZZ", "str_s1", "c"));
+
+    assertU(adoc("id", "4", "title", "XXXX XXXX", "str_s1", "x"));
+    assertU(adoc("id", "5", "title", "YYYY YYYY", "str_s1", "y"));
+    assertU(adoc("id", "6", "title", "XXXX XXXX", "str_s1", "z"));
+    assertU(adoc("id", "7", "title", "AAAA", "str_s1", "a"));
+
+    assertU(adoc("id", "10", "title", "RR", "str_s1", "r"));
+    assertU(adoc("id", "11", "title", "SS", "str_s1", "r"));
+    assertU(adoc("id", "12", "title", "TT", "str_s1", "r"));
+    assertU(adoc("id", "13", "title", "UU", "str_s1", "r"));
+    assertU(adoc("id", "14", "title", "VV", "str_s1", "r"));
+    assertU(commit());
+
+    // Exact matching.
+    assertQ("", req(CommonParams.Q, "XXXX", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='3']",
+        "//result/doc[1]/str[@name='id'][.='1']", "//result/doc[2]/str[@name='id'][.='4']", "//result/doc[3]/str[@name='id'][.='6']",
+        "//result/doc[1]/bool[@name='[elevated]'][.='true']", "//result/doc[2]/bool[@name='[elevated]'][.='false']",
+        "//result/doc[3]/bool[@name='[elevated]'][.='false']");
+
+    // Exact matching.
+    assertQ("", req(CommonParams.Q, "QQQQ EE", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='0']");
+
+    // Subset matching.
+    assertQ("", req(CommonParams.Q, "BB DD CC VV", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='4']",
+        "//result/doc[1]/str[@name='id'][.='10']", "//result/doc[2]/str[@name='id'][.='12']", "//result/doc[3]/str[@name='id'][.='11']",
+        "//result/doc[4]/str[@name='id'][.='14']", "//result/doc[1]/bool[@name='[elevated]'][.='true']", "//result/doc[2]/bool[@name='[elevated]'][.='true']",
+        "//result/doc[3]/bool[@name='[elevated]'][.='true']", "//result/doc[4]/bool[@name='[elevated]'][.='false']");
+
+    // Subset + exact matching.
+    assertQ("", req(CommonParams.Q, "BB CC", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='4']",
+        "//result/doc[1]/str[@name='id'][.='13']", "//result/doc[2]/str[@name='id'][.='10']", "//result/doc[3]/str[@name='id'][.='12']",
+        "//result/doc[4]/str[@name='id'][.='11']", "//result/doc[1]/bool[@name='[elevated]'][.='true']", "//result/doc[2]/bool[@name='[elevated]'][.='true']",
+        "//result/doc[3]/bool[@name='[elevated]'][.='true']", "//result/doc[4]/bool[@name='[elevated]'][.='true']");
+
+    // Subset matching.
+    assertQ("", req(CommonParams.Q, "AA BB DD CC AA", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='4']",
+        "//result/doc[1]/str[@name='id'][.='10']", "//result/doc[2]/str[@name='id'][.='12']", "//result/doc[3]/str[@name='id'][.='11']",
+        "//result/doc[4]/str[@name='id'][.='14']", "//result/doc[1]/bool[@name='[elevated]'][.='true']", "//result/doc[2]/bool[@name='[elevated]'][.='true']",
+        "//result/doc[3]/bool[@name='[elevated]'][.='true']", "//result/doc[4]/bool[@name='[elevated]'][.='true']");
+
+    // Subset matching.
+    assertQ("", req(CommonParams.Q, "AA RR BB DD AA", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='3']",
+        "//result/doc[1]/str[@name='id'][.='12']", "//result/doc[2]/str[@name='id'][.='14']", "//result/doc[3]/str[@name='id'][.='10']",
+        "//result/doc[1]/bool[@name='[elevated]'][.='true']", "//result/doc[2]/bool[@name='[elevated]'][.='true']",
+        "//result/doc[3]/bool[@name='[elevated]'][.='false']");
+
+    // Subset matching.
+    assertQ("", req(CommonParams.Q, "AA BB EE", CommonParams.QT, "/elevate", CommonParams.FL, "id, score, [elevated]"), "//*[@numFound='0']");
 
-      // Exact matching.
-      assertQ("", req(CommonParams.Q, "XXXX", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]"),
-          "//*[@numFound='3']",
-          "//result/doc[1]/str[@name='id'][.='1']",
-          "//result/doc[2]/str[@name='id'][.='4']",
-          "//result/doc[3]/str[@name='id'][.='6']",
-          "//result/doc[1]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[2]/bool[@name='[elevated]'][.='false']",
-          "//result/doc[3]/bool[@name='[elevated]'][.='false']"
-      );
-
-      // Exact matching.
-      assertQ("", req(CommonParams.Q, "QQQQ EE", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]"),
-          "//*[@numFound='0']"
-      );
-
-      // Subset matching.
-      assertQ("", req(CommonParams.Q, "BB DD CC VV", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]"),
-          "//*[@numFound='4']",
-          "//result/doc[1]/str[@name='id'][.='10']",
-          "//result/doc[2]/str[@name='id'][.='12']",
-          "//result/doc[3]/str[@name='id'][.='11']",
-          "//result/doc[4]/str[@name='id'][.='14']",
-          "//result/doc[1]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[2]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[3]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[4]/bool[@name='[elevated]'][.='false']"
-      );
-
-      // Subset + exact matching.
-      assertQ("", req(CommonParams.Q, "BB CC", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]"),
-          "//*[@numFound='4']",
-          "//result/doc[1]/str[@name='id'][.='13']",
-          "//result/doc[2]/str[@name='id'][.='10']",
-          "//result/doc[3]/str[@name='id'][.='12']",
-          "//result/doc[4]/str[@name='id'][.='11']",
-          "//result/doc[1]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[2]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[3]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[4]/bool[@name='[elevated]'][.='true']"
-      );
-
-      // Subset matching.
-      assertQ("", req(CommonParams.Q, "AA BB DD CC AA", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]"),
-          "//*[@numFound='4']",
-          "//result/doc[1]/str[@name='id'][.='10']",
-          "//result/doc[2]/str[@name='id'][.='12']",
-          "//result/doc[3]/str[@name='id'][.='11']",
-          "//result/doc[4]/str[@name='id'][.='14']",
-          "//result/doc[1]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[2]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[3]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[4]/bool[@name='[elevated]'][.='true']"
-      );
-
-      // Subset matching.
-      assertQ("", req(CommonParams.Q, "AA RR BB DD AA", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]"),
-          "//*[@numFound='3']",
-          "//result/doc[1]/str[@name='id'][.='12']",
-          "//result/doc[2]/str[@name='id'][.='14']",
-          "//result/doc[3]/str[@name='id'][.='10']",
-          "//result/doc[1]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[2]/bool[@name='[elevated]'][.='true']",
-          "//result/doc[3]/bool[@name='[elevated]'][.='false']"
-      );
-
-      // Subset matching.
-      assertQ("", req(CommonParams.Q, "AA BB EE", CommonParams.QT, "/elevate",
-          CommonParams.FL, "id, score, [elevated]")
-          , "//*[@numFound='0']"
-          );
-    } finally {
-      delete();
-    }
   }
 
-  @Test
-  public void testElevatedIds() throws Exception {
+  @Test public void testElevatedIds() throws Exception {
     try (QueryElevationComponent comp = new QueryElevationComponent()) {
       init("schema12.xml");
       try (SolrCore core = h.getCore()) {
@@ -865,8 +634,6 @@ public class QueryElevationComponentTest extends SolrTestCaseJ4 {
         assertEquals(toIdSet("10", "11", "12", "13"), elevationProvider.getElevationForQuery("BB Cc").elevatedIds);
         assertEquals(toIdSet("10", "11", "12", "14"), elevationProvider.getElevationForQuery("aa bb dd cc aa").elevatedIds);
       }
-    } finally {
-      delete();
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java b/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
index 4679225..46e65d8 100644
--- a/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
+++ b/solr/core/src/test/org/apache/solr/request/TestIntervalFaceting.java
@@ -76,7 +76,6 @@ public class TestIntervalFaceting extends SolrTestCaseJ4 {
     assertU(delQ("*:*"));
     assertU(commit());
     assertU(optimize());
-    assertQ(req("*:*"), "//*[@numFound='0']");
     super.tearDown();
   }
 
diff --git a/solr/core/src/test/org/apache/solr/response/JSONWriterTest.java b/solr/core/src/test/org/apache/solr/response/JSONWriterTest.java
index 320b0a0..9b3a6a5 100644
--- a/solr/core/src/test/org/apache/solr/response/JSONWriterTest.java
+++ b/solr/core/src/test/org/apache/solr/response/JSONWriterTest.java
@@ -35,6 +35,7 @@ import org.apache.solr.common.util.NamedList;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.ReturnFields;
 import org.apache.solr.search.SolrReturnFields;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -47,6 +48,11 @@ public class JSONWriterTest extends SolrTestCaseJ4 {
     initCore("solrconfig.xml","schema.xml");
   }
 
+  @AfterClass
+  public static void afterJSONWriterTest() {
+    deleteCore();
+  }
+
   private void jsonEq(String expected, String received) {
     expected = expected.trim();
     received = received.trim();
diff --git a/solr/core/src/test/org/apache/solr/response/TestPHPSerializedResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestPHPSerializedResponseWriter.java
index e383743..155af31 100644
--- a/solr/core/src/test/org/apache/solr/response/TestPHPSerializedResponseWriter.java
+++ b/solr/core/src/test/org/apache/solr/response/TestPHPSerializedResponseWriter.java
@@ -25,6 +25,7 @@ import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -38,6 +39,11 @@ public class TestPHPSerializedResponseWriter extends SolrTestCaseJ4 {
     initCore("solrconfig.xml","schema.xml");
   }
 
+  @AfterClass
+  public static void afterTestPHPSerializedResponseWriter() {
+    deleteCore();
+  }
+
   @Test
   public void testSimple() throws IOException {
     SolrQueryRequest req = req("dummy");
diff --git a/solr/core/src/test/org/apache/solr/response/TestRawResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestRawResponseWriter.java
index d6b4e88..d6e4242 100644
--- a/solr/core/src/test/org/apache/solr/response/TestRawResponseWriter.java
+++ b/solr/core/src/test/org/apache/solr/response/TestRawResponseWriter.java
@@ -45,7 +45,7 @@ public class TestRawResponseWriter extends SolrTestCaseJ4 {
   private static RawResponseWriter[] allWriters;
 
   @BeforeClass
-  public static void setupCoreAndWriters() throws Exception {
+  public static void beforeTestRawResponseWriter() throws Exception {
     // we don't directly use this core or its config, we use
     // QueryResponseWriters' constructed programmatically,
     // but we do use this core for managing the life cycle of the requests
@@ -63,12 +63,12 @@ public class TestRawResponseWriter extends SolrTestCaseJ4 {
   }
 
   @AfterClass
-  public static void cleanupWriters() throws Exception {
+  public static void afterTestRawResponseWriter() throws Exception {
+    deleteCore();
     writerXmlBase = null;
     writerJsonBase = null;
     writerBinBase = null;
     writerNoBase = null;
-
     allWriters = null;
   }
 
diff --git a/solr/core/src/test/org/apache/solr/schema/CopyFieldTest.java b/solr/core/src/test/org/apache/solr/schema/CopyFieldTest.java
index c048c36..e832f48 100644
--- a/solr/core/src/test/org/apache/solr/schema/CopyFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/CopyFieldTest.java
@@ -26,6 +26,7 @@ import org.apache.solr.common.params.MapSolrParams;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -39,7 +40,12 @@ public class CopyFieldTest extends SolrTestCaseJ4 {
   @BeforeClass
   public static void beforeCopyFieldTest() throws Exception {
     initCore("solrconfig.xml","schema-copyfield-test.xml");
-  }    
+  }
+
+  @AfterClass
+  public static void afterCopyFieldTest() {
+    deleteCore();
+  }
 
   @Test
   public void testCopyFieldSchemaFieldSchemaField() {
diff --git a/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java b/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java
index 7b81ae3..530fa9c 100644
--- a/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java
@@ -27,6 +27,9 @@ import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.util.RefCounted;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -48,9 +51,20 @@ public class DocValuesMultiTest extends SolrTestCaseJ4 {
     }
   }
 
+  @AfterClass
+  public static void afterDocValuesMultiTest() {
+    deleteCore();
+  }
+
+  @Before
   public void setUp() throws Exception {
     super.setUp();
+  }
+
+  @After
+  public void tearDown() throws Exception {
     assertU(delQ("*:*"));
+    super.tearDown();
   }
 
   @Test
diff --git a/solr/core/src/test/org/apache/solr/schema/EnumFieldTest.java b/solr/core/src/test/org/apache/solr/schema/EnumFieldTest.java
index 9d3a31e..ff05689 100644
--- a/solr/core/src/test/org/apache/solr/schema/EnumFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/EnumFieldTest.java
@@ -29,6 +29,7 @@ import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.search.SolrQueryParser;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -40,15 +41,16 @@ public class EnumFieldTest extends SolrTestCaseJ4 {
   @BeforeClass
   public static void beforeEnumFieldTest() throws Exception {
     System.setProperty("solr.tests.EnumFieldTest.indexed", Boolean.toString(random().nextBoolean()));
-    doInitCore();
+    initCore("solrconfig-minimal.xml", "schema-enums.xml");
 
 //    System.out.println("solr.tests.numeric.dv: " + System.getProperty("solr.tests.numeric.dv"));
 //    System.out.println("solr.tests.EnumFieldTest.indexed: " + System.getProperty("solr.tests.EnumFieldTest.indexed"));
 //    System.out.println("solr.tests.EnumFieldType: " + System.getProperty("solr.tests.EnumFieldType"));
   }
-  
-  private static void doInitCore() throws Exception {
-    initCore("solrconfig-minimal.xml", "schema-enums.xml");
+
+  @AfterClass
+  public static void afterEnumFieldTest() {
+    deleteCore();
   }
 
   @Test
@@ -573,7 +575,7 @@ public class EnumFieldTest extends SolrTestCaseJ4 {
       assertTrue(e.getMessage().contains("EnumFieldType requires docValues=\"true\""));
     } finally { // put back the core expected by other tests
       deleteCore();
-      doInitCore();
+      initCore("solrconfig-minimal.xml", "schema-enums.xml");
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/schema/ExternalFileFieldSortTest.java b/solr/core/src/test/org/apache/solr/schema/ExternalFileFieldSortTest.java
index a1c4e94..3002973 100644
--- a/solr/core/src/test/org/apache/solr/schema/ExternalFileFieldSortTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/ExternalFileFieldSortTest.java
@@ -50,14 +50,15 @@ public class ExternalFileFieldSortTest extends SolrTestCaseJ4 {
   @Test
   public void testSort() throws Exception {
     initCore("solrconfig-basic.xml", "schema-eff.xml");
-    updateExternalFile();
+    try {
+      updateExternalFile();
 
-    addDocuments();
-    assertQ("query",
-        req("q", "*:*", "sort", "eff asc"),
-        "//result/doc[position()=1]/str[.='3']",
-        "//result/doc[position()=2]/str[.='1']",
-        "//result/doc[position()=10]/str[.='8']");
+      addDocuments();
+      assertQ("query", req("q", "*:*", "sort", "eff asc"), "//result/doc[position()=1]/str[.='3']", "//result/doc[position()=2]/str[.='1']",
+          "//result/doc[position()=10]/str[.='8']");
+    } finally {
+      deleteCore();
+    }
   }
   
   @Test
diff --git a/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java b/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java
index 4520333..3b6985d 100644
--- a/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/PolyFieldTest.java
@@ -25,6 +25,7 @@ import org.apache.lucene.search.Query;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.core.SolrCore;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -40,6 +41,11 @@ public class PolyFieldTest extends SolrTestCaseJ4 {
     initCore("solrconfig.xml","schema.xml");
   }
 
+  @AfterClass
+  public static void afterPolyFieldTest() {
+    deleteCore();
+  }
+
   @Test
   public void testSchemaBasics() throws Exception {
     SolrCore core = h.getCore();
diff --git a/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java b/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java
index ec84272..caad1c9 100644
--- a/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java
@@ -26,6 +26,8 @@ import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.SolrTestUtil;
 import org.apache.solr.core.SolrConfig;
 import org.apache.solr.core.SolrResourceLoader;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -38,6 +40,7 @@ public class PrimitiveFieldTypeTest extends SolrTestCaseJ4 {
   protected HashMap<String,String> initMap;
   
   @Override
+  @Before
   public void setUp()  throws Exception {
     super.setUp();
     // set some system properties for use by tests
@@ -53,6 +56,7 @@ public class PrimitiveFieldTypeTest extends SolrTestCaseJ4 {
   }
   
   @Override
+  @After
   public void tearDown() throws Exception {
     System.clearProperty("solr.allow.unsafe.resourceloading");
     super.tearDown();
diff --git a/solr/core/src/test/org/apache/solr/schema/RequiredFieldsTest.java b/solr/core/src/test/org/apache/solr/schema/RequiredFieldsTest.java
index 887c0b4..60eaa56 100644
--- a/solr/core/src/test/org/apache/solr/schema/RequiredFieldsTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/RequiredFieldsTest.java
@@ -20,6 +20,7 @@ import java.util.Collection;
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.core.SolrCore;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 /**
@@ -30,6 +31,11 @@ public class RequiredFieldsTest extends SolrTestCaseJ4 {
   public static void beforeRequiredFieldsTest() throws Exception {
     initCore("solrconfig.xml","schema-required-fields.xml");
   }
+
+  @AfterClass
+  public static void afterRequiredFieldsTest() {
+    deleteCore();
+  }
   
   @Override
   public void setUp() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java b/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java
index 11d7dfe..58b4694 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java
@@ -45,6 +45,7 @@ import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.util.RefCounted;
 
+import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import static org.hamcrest.CoreMatchers.instanceOf;
@@ -55,7 +56,7 @@ public class TestSortableTextField extends SolrTestCaseJ4 {
     = StringUtils.repeat("x", SortableTextField.DEFAULT_MAX_CHARS_FOR_DOC_VALUES);
   
   @BeforeClass
-  public static void create() throws Exception {
+  public static void beforeTestSortableTextField() throws Exception {
     initCore("solrconfig-minimal.xml", "schema-sorting-text.xml");
     try (SolrCore core = h.getCore()) {
       // sanity check our fields & types...
@@ -81,6 +82,11 @@ public class TestSortableTextField extends SolrTestCaseJ4 {
       }
     }
   }
+
+  @AfterClass
+  public static void afterTestSortableTextField() {
+    deleteCore();
+  }
   
   @Before
   public void cleanup() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/search/CursorMarkTest.java b/solr/core/src/test/org/apache/solr/search/CursorMarkTest.java
index 674ec2b..387c2bd 100644
--- a/solr/core/src/test/org/apache/solr/search/CursorMarkTest.java
+++ b/solr/core/src/test/org/apache/solr/search/CursorMarkTest.java
@@ -40,6 +40,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.UUID;
 
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
 /**
@@ -52,11 +53,16 @@ import org.junit.BeforeClass;
 public class CursorMarkTest extends SolrTestCaseJ4 {
 
   @BeforeClass
-  public static void beforeTests() throws Exception {
+  public static void beforeCursorMarkTest() throws Exception {
     System.setProperty("solr.test.useFilterForSortedQuery", Boolean.toString(random().nextBoolean()));
     initCore(CursorPagingTest.TEST_SOLRCONFIG_NAME, CursorPagingTest.TEST_SCHEMAXML_NAME);
   }
 
+  @AfterClass
+  public static void afterCursorMarkTest() {
+    deleteCore();
+  }
+
   public void testNextCursorMark() throws IOException {
     final Collection<String> allFieldNames = getAllFieldNames();
     final SolrQueryRequest req = req();
diff --git a/solr/core/src/test/org/apache/solr/search/TestStressUserVersions.java b/solr/core/src/test/org/apache/solr/search/TestStressUserVersions.java
index e63e7cf..fe1e331 100644
--- a/solr/core/src/test/org/apache/solr/search/TestStressUserVersions.java
+++ b/solr/core/src/test/org/apache/solr/search/TestStressUserVersions.java
@@ -34,6 +34,7 @@ import org.apache.solr.common.util.Utils;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.util.TestHarness;
 import org.apache.solr.util.TimeOut;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -45,10 +46,15 @@ public class TestStressUserVersions extends TestRTGBase {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @BeforeClass
-  public static void beforeClass() throws Exception {
+  public static void beforeTestStressUserVersions() throws Exception {
     initCore("solrconfig-externalversionconstraint.xml","schema15.xml");
   }
 
+  @AfterClass
+  public static void afterTestStressUserVersions() {
+    deleteCore();
+  }
+
   private static String vfield = "my_version_l";
   private static String lfield = "live_b";
   private static String dversion = "del_version";
diff --git a/solr/core/src/test/org/apache/solr/search/join/another/BJQFilterAccessibleTest.java b/solr/core/src/test/org/apache/solr/search/join/another/BJQFilterAccessibleTest.java
index d5044e6..eb23904 100644
--- a/solr/core/src/test/org/apache/solr/search/join/another/BJQFilterAccessibleTest.java
+++ b/solr/core/src/test/org/apache/solr/search/join/another/BJQFilterAccessibleTest.java
@@ -28,6 +28,7 @@ import org.apache.lucene.search.join.ToParentBlockJoinQuery;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.join.BlockJoinParentQParser;
+import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 
@@ -41,6 +42,11 @@ public class BJQFilterAccessibleTest  extends SolrTestCaseJ4 {
     createIndex();
   }
 
+  @AfterClass
+  public static void afterCursorBJQFilterAccessibleTest() {
+    deleteCore();
+  }
+
   public void testAbilityToCreateBJQfromAnotherPackage() throws IOException {
     try (SolrQueryRequest req = lrf.makeRequest()) {
       TermQuery childQuery = new TermQuery(new Term("child_s", "l"));
diff --git a/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
index dfed2cd..d804dc5 100644
--- a/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
@@ -79,7 +79,8 @@ public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
   }
   
   @AfterClass
-  public static void afterClass() {
+  public static void afterIndexBasedSpellCheckerTest() {
+    deleteCore();
     queryConverter = null;
     DOCS = null;
   }
diff --git a/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorWithCollapseTest.java b/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorWithCollapseTest.java
index d683a6c..d31e5e5 100644
--- a/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorWithCollapseTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorWithCollapseTest.java
@@ -38,8 +38,8 @@ public class SpellCheckCollatorWithCollapseTest  extends SolrTestCaseJ4 {
 
   @After
   public void tearDown() throws Exception {
-    super.tearDown();
     deleteCore();
+    super.tearDown();
   }
   
   @Test
diff --git a/solr/core/src/test/org/apache/solr/update/processor/NestedAtomicUpdateTest.java b/solr/core/src/test/org/apache/solr/update/processor/NestedAtomicUpdateTest.java
index 2c3c544..5278f45 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/NestedAtomicUpdateTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/NestedAtomicUpdateTest.java
@@ -41,13 +41,15 @@ public class NestedAtomicUpdateTest extends SolrTestCaseJ4 {
   private final static String VERSION = "_version_";
 
   @Before
-  public void beforeTests() throws Exception {
+  public void setUp() throws Exception {
+    super.setUp();
     initCore("solrconfig-tlog.xml", "schema-nest.xml"); // use "nest" schema
   }
 
   @After
-  public void afterTests() {
+  public void tearDown() throws Exception {
     deleteCore();
+    super.tearDown();
   }
 
   @Test
diff --git a/solr/core/src/test/org/apache/solr/update/processor/UpdateRequestProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/UpdateRequestProcessorFactoryTest.java
index c06f8bd..5cee455 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/UpdateRequestProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/UpdateRequestProcessorFactoryTest.java
@@ -27,6 +27,7 @@ import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -47,6 +48,11 @@ public class UpdateRequestProcessorFactoryTest extends SolrTestCaseJ4 {
     initCore("solrconfig-transformers.xml", "schema.xml");
   }
 
+  @AfterClass
+  public static void afterUpdateRequestProcessorFactoryTest() {
+    deleteCore();
+  }
+
   public void testRequestTimeUrp(){
     SolrCore core = h.getCore();
     ModifiableSolrParams params = new ModifiableSolrParams()
diff --git a/solr/core/src/test/org/apache/solr/util/TestMaxTokenLenTokenizer.java b/solr/core/src/test/org/apache/solr/util/TestMaxTokenLenTokenizer.java
index b7d1d64..ac4dce3 100644
--- a/solr/core/src/test/org/apache/solr/util/TestMaxTokenLenTokenizer.java
+++ b/solr/core/src/test/org/apache/solr/util/TestMaxTokenLenTokenizer.java
@@ -18,6 +18,7 @@
 package org.apache.solr.util;
 
 import org.apache.solr.SolrTestCaseJ4;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
 /**
@@ -36,6 +37,11 @@ public class TestMaxTokenLenTokenizer extends SolrTestCaseJ4 {
     initCore("solrconfig-update-processor-chains.xml", "schema-tokenizer-test.xml");
   }
 
+  @AfterClass
+  public static void afterTestMaxTokenLenTokenizer() {
+    deleteCore();
+  }
+
   public void testSingleFieldDiffAnalyzers() throws Exception {
 
     clearIndex();
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java b/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java
index 87ee932..c3d1e83 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java
@@ -27,6 +27,7 @@ import org.apache.solr.client.solrj.request.RequestWriter;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrInputDocument;
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -62,6 +63,11 @@ public class TestSolrJErrorHandling extends SolrJettyTestBase {
     jetty = createAndStartJetty(legacyExampleCollection1SolrHome());
   }
 
+  @AfterClass
+  public static void afterTestSolrJErrorHandling() {
+    deleteCore();
+  }
+
   @Override
   @After
   public void tearDown() throws Exception {
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
index e674c5d..dc58983 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
@@ -38,10 +38,6 @@ import java.lang.invoke.MethodHandles;
  */
 public class TestSolrProperties extends AbstractEmbeddedSolrServerTestCase {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-//
-//  @Rule
-//  public TestRule solrTestRules =
-//    RuleChain.outerRule(new SystemPropertiesRestoreRule());
 
   protected SolrClient getSolrAdmin() {
     return new EmbeddedSolrServer(cores, null);
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSpellCheckResponse.java b/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSpellCheckResponse.java
index 63b4110..66057e8 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSpellCheckResponse.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSpellCheckResponse.java
@@ -27,6 +27,7 @@ import org.apache.solr.client.solrj.response.SpellCheckResponse.Correction;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.SpellingParams;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -45,6 +46,11 @@ public class TestSpellCheckResponse extends EmbeddedSolrServerTestBase {
     initCore();
   }
 
+  @AfterClass
+  public static void afterTestSpellCheckResponse() {
+    deleteCore();
+  }
+
   String field = "name";
 
   @Test
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java b/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java
index 7f40609..ca55cbd 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSuggesterResponse.java
@@ -26,6 +26,7 @@ import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.params.CommonParams;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -40,6 +41,11 @@ public class TestSuggesterResponse extends EmbeddedSolrServerTestBase {
     initCore();
   }
 
+  @AfterClass
+  public static void afterTestSuggesterResponse() {
+    deleteCore();
+  }
+
   String field = "cat";
 
   @Test
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
index f1e968e..5006719 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
@@ -704,8 +704,8 @@ public class SolrTestCase extends Assert {
     }
     if (thread.getName().contains(ParWork.ROOT_EXEC_NAME + "-")) {
       log.warn("interrupt on {}", thread.getName());
-     // thread.interrupt();
-      return false;
+      thread.interrupt();
+      return true;
     }
     if (interruptThreadListContains(nameContains, thread.getName())) {
       log.warn("interrupt on {}", thread.getName());