diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java index 44911dbcc0d..23fac474e19 100644 --- a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java +++ b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java @@ -304,7 +304,9 @@ public class TestBackwardsCompatibility extends LuceneTestCase { "7.4.0-cfs", "7.4.0-nocfs", "7.5.0-cfs", - "7.5.0-nocfs" + "7.5.0-nocfs", + "7.6.0-cfs", + "7.6.0-nocfs" }; public static String[] getOldNames() { @@ -320,7 +322,8 @@ public class TestBackwardsCompatibility extends LuceneTestCase { "sorted.7.3.0", "sorted.7.3.1", "sorted.7.4.0", - "sorted.7.5.0" + "sorted.7.5.0", + "sorted.7.6.0" }; public static String[] getOldSortedNames() { diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/index.7.6.0-cfs.zip b/lucene/backward-codecs/src/test/org/apache/lucene/index/index.7.6.0-cfs.zip new file mode 100644 index 00000000000..79fb6541ead Binary files /dev/null and b/lucene/backward-codecs/src/test/org/apache/lucene/index/index.7.6.0-cfs.zip differ diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/index.7.6.0-nocfs.zip b/lucene/backward-codecs/src/test/org/apache/lucene/index/index.7.6.0-nocfs.zip new file mode 100644 index 00000000000..daaee827b64 Binary files /dev/null and b/lucene/backward-codecs/src/test/org/apache/lucene/index/index.7.6.0-nocfs.zip differ diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.7.6.0.zip b/lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.7.6.0.zip new file mode 100644 index 00000000000..f510fced0db Binary files /dev/null and b/lucene/backward-codecs/src/test/org/apache/lucene/index/sorted.7.6.0.zip differ diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 28baf4d437e..34c96246c9f 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -175,6 +175,10 @@ Bug Fixes * SOLR-13066: A failure while reloading a SolrCore can result in the SolrCore not being closed. (Mark Miller) +* SOLR-11296: Spellcheck parameters not working in new UI (Matt Pearce via janhoy) + +* SOLR-10975: New Admin UI Query does not URL-encode the query produced in the URL box (janhoy) + Improvements ---------------------- diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java index 9b52b802fa4..fd719edad33 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java @@ -122,9 +122,6 @@ public class MiniSolrCloudCluster { private final CloudSolrClient solrClient; private final JettyConfig jettyConfig; - private final ExecutorService executorLauncher = ExecutorUtil.newMDCAwareCachedThreadPool(new SolrjNamedThreadFactory("jetty-launcher")); - private final ExecutorService executorCloser = ExecutorUtil.newMDCAwareCachedThreadPool(new SolrjNamedThreadFactory("jetty-closer")); - private final AtomicInteger nodeIds = new AtomicInteger(); /** @@ -272,7 +269,9 @@ public class MiniSolrCloudCluster { startups.add(() -> startJettySolrRunner(newNodeName(), jettyConfig.context, jettyConfig)); } + final ExecutorService executorLauncher = ExecutorUtil.newMDCAwareCachedThreadPool(new SolrjNamedThreadFactory("jetty-launcher")); Collection> futures = executorLauncher.invokeAll(startups); + ExecutorUtil.shutdownAndAwaitTermination(executorLauncher); Exception startupError = checkForExceptions("Error starting up MiniSolrCloudCluster", futures); if (startupError != null) { try { @@ -294,10 +293,6 @@ public class MiniSolrCloudCluster { private void waitForAllNodes(int numServers, int timeoutSeconds) throws IOException, InterruptedException, TimeoutException { - executorLauncher.shutdown(); - - ExecutorUtil.shutdownAndAwaitTermination(executorLauncher); - int numRunning = 0; TimeOut timeout = new TimeOut(30, TimeUnit.SECONDS, TimeSource.NANO_TIME); @@ -327,10 +322,6 @@ public class MiniSolrCloudCluster { public void waitForNode(JettySolrRunner jetty, int timeoutSeconds) throws IOException, InterruptedException, TimeoutException { - executorLauncher.shutdown(); - - ExecutorUtil.shutdownAndAwaitTermination(executorLauncher); - ZkStateReader reader = getSolrClient().getZkStateReader(); reader.waitForLiveNodes(30, TimeUnit.SECONDS, (o, n) -> n.contains(jetty.getNodeName())); @@ -577,21 +568,19 @@ public class MiniSolrCloudCluster { try { IOUtils.closeQuietly(solrClient); - // accept no new tasks - executorLauncher.shutdown(); List> shutdowns = new ArrayList<>(jettys.size()); for (final JettySolrRunner jetty : jettys) { shutdowns.add(() -> stopJettySolrRunner(jetty)); } jettys.clear(); + final ExecutorService executorCloser = ExecutorUtil.newMDCAwareCachedThreadPool(new SolrjNamedThreadFactory("jetty-closer")); Collection> futures = executorCloser.invokeAll(shutdowns); + ExecutorUtil.shutdownAndAwaitTermination(executorCloser); Exception shutdownError = checkForExceptions("Error shutting down MiniSolrCloudCluster", futures); if (shutdownError != null) { throw shutdownError; } } finally { - ExecutorUtil.shutdownAndAwaitTermination(executorLauncher); - ExecutorUtil.shutdownAndAwaitTermination(executorCloser); try { if (!externalZkServer) { zkServer.shutdown(); diff --git a/solr/webapp/web/js/angular/app.js b/solr/webapp/web/js/angular/app.js index cb04ba3efb7..eb442d86754 100644 --- a/solr/webapp/web/js/angular/app.js +++ b/solr/webapp/web/js/angular/app.js @@ -76,7 +76,7 @@ solrAdminApp.config([ templateUrl: 'partials/cluster_suggestions.html', controller: 'ClusterSuggestionsController' }). - when('/:core', { + when('/:core/core-overview', { templateUrl: 'partials/core_overview.html', controller: 'CoreOverviewController' }). diff --git a/solr/webapp/web/js/angular/controllers/query.js b/solr/webapp/web/js/angular/controllers/query.js index 63f0830526a..7267b000966 100644 --- a/solr/webapp/web/js/angular/controllers/query.js +++ b/solr/webapp/web/js/angular/controllers/query.js @@ -43,7 +43,8 @@ solrAdminApp.controller('QueryController', var copy = function(params, query) { for (var key in query) { terms = query[key]; - if (terms.length > 0 && key[0]!="$") { + // Booleans have no length property - only set them if true + if (((typeof(terms) == typeof(true) && terms) || terms.length > 0) && key[0]!="$") { set(key, terms); } } diff --git a/solr/webapp/web/js/angular/services.js b/solr/webapp/web/js/angular/services.js index 8eb148fb3ae..3391221e495 100644 --- a/solr/webapp/web/js/angular/services.js +++ b/solr/webapp/web/js/angular/services.js @@ -235,7 +235,7 @@ solrAdminServices.factory('System', for (key in params) { if (key != "core" && key != "handler") { for (var i in params[key]) { - qs.push(key + "=" + params[key][i]); + qs.push(key + "=" + encodeURIComponent(params[key][i])); } } }