This commit is contained in:
Erick Erickson 2018-12-14 07:43:06 -08:00
commit 3ca7e65388
9 changed files with 17 additions and 20 deletions

View File

@ -304,7 +304,9 @@ public class TestBackwardsCompatibility extends LuceneTestCase {
"7.4.0-cfs", "7.4.0-cfs",
"7.4.0-nocfs", "7.4.0-nocfs",
"7.5.0-cfs", "7.5.0-cfs",
"7.5.0-nocfs" "7.5.0-nocfs",
"7.6.0-cfs",
"7.6.0-nocfs"
}; };
public static String[] getOldNames() { public static String[] getOldNames() {
@ -320,7 +322,8 @@ public class TestBackwardsCompatibility extends LuceneTestCase {
"sorted.7.3.0", "sorted.7.3.0",
"sorted.7.3.1", "sorted.7.3.1",
"sorted.7.4.0", "sorted.7.4.0",
"sorted.7.5.0" "sorted.7.5.0",
"sorted.7.6.0"
}; };
public static String[] getOldSortedNames() { public static String[] getOldSortedNames() {

View File

@ -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-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 Improvements
---------------------- ----------------------

View File

@ -122,9 +122,6 @@ public class MiniSolrCloudCluster {
private final CloudSolrClient solrClient; private final CloudSolrClient solrClient;
private final JettyConfig jettyConfig; 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(); private final AtomicInteger nodeIds = new AtomicInteger();
/** /**
@ -272,7 +269,9 @@ public class MiniSolrCloudCluster {
startups.add(() -> startJettySolrRunner(newNodeName(), jettyConfig.context, jettyConfig)); startups.add(() -> startJettySolrRunner(newNodeName(), jettyConfig.context, jettyConfig));
} }
final ExecutorService executorLauncher = ExecutorUtil.newMDCAwareCachedThreadPool(new SolrjNamedThreadFactory("jetty-launcher"));
Collection<Future<JettySolrRunner>> futures = executorLauncher.invokeAll(startups); Collection<Future<JettySolrRunner>> futures = executorLauncher.invokeAll(startups);
ExecutorUtil.shutdownAndAwaitTermination(executorLauncher);
Exception startupError = checkForExceptions("Error starting up MiniSolrCloudCluster", futures); Exception startupError = checkForExceptions("Error starting up MiniSolrCloudCluster", futures);
if (startupError != null) { if (startupError != null) {
try { try {
@ -294,10 +293,6 @@ public class MiniSolrCloudCluster {
private void waitForAllNodes(int numServers, int timeoutSeconds) throws IOException, InterruptedException, TimeoutException { private void waitForAllNodes(int numServers, int timeoutSeconds) throws IOException, InterruptedException, TimeoutException {
executorLauncher.shutdown();
ExecutorUtil.shutdownAndAwaitTermination(executorLauncher);
int numRunning = 0; int numRunning = 0;
TimeOut timeout = new TimeOut(30, TimeUnit.SECONDS, TimeSource.NANO_TIME); TimeOut timeout = new TimeOut(30, TimeUnit.SECONDS, TimeSource.NANO_TIME);
@ -327,10 +322,6 @@ public class MiniSolrCloudCluster {
public void waitForNode(JettySolrRunner jetty, int timeoutSeconds) public void waitForNode(JettySolrRunner jetty, int timeoutSeconds)
throws IOException, InterruptedException, TimeoutException { throws IOException, InterruptedException, TimeoutException {
executorLauncher.shutdown();
ExecutorUtil.shutdownAndAwaitTermination(executorLauncher);
ZkStateReader reader = getSolrClient().getZkStateReader(); ZkStateReader reader = getSolrClient().getZkStateReader();
reader.waitForLiveNodes(30, TimeUnit.SECONDS, (o, n) -> n.contains(jetty.getNodeName())); reader.waitForLiveNodes(30, TimeUnit.SECONDS, (o, n) -> n.contains(jetty.getNodeName()));
@ -577,21 +568,19 @@ public class MiniSolrCloudCluster {
try { try {
IOUtils.closeQuietly(solrClient); IOUtils.closeQuietly(solrClient);
// accept no new tasks
executorLauncher.shutdown();
List<Callable<JettySolrRunner>> shutdowns = new ArrayList<>(jettys.size()); List<Callable<JettySolrRunner>> shutdowns = new ArrayList<>(jettys.size());
for (final JettySolrRunner jetty : jettys) { for (final JettySolrRunner jetty : jettys) {
shutdowns.add(() -> stopJettySolrRunner(jetty)); shutdowns.add(() -> stopJettySolrRunner(jetty));
} }
jettys.clear(); jettys.clear();
final ExecutorService executorCloser = ExecutorUtil.newMDCAwareCachedThreadPool(new SolrjNamedThreadFactory("jetty-closer"));
Collection<Future<JettySolrRunner>> futures = executorCloser.invokeAll(shutdowns); Collection<Future<JettySolrRunner>> futures = executorCloser.invokeAll(shutdowns);
ExecutorUtil.shutdownAndAwaitTermination(executorCloser);
Exception shutdownError = checkForExceptions("Error shutting down MiniSolrCloudCluster", futures); Exception shutdownError = checkForExceptions("Error shutting down MiniSolrCloudCluster", futures);
if (shutdownError != null) { if (shutdownError != null) {
throw shutdownError; throw shutdownError;
} }
} finally { } finally {
ExecutorUtil.shutdownAndAwaitTermination(executorLauncher);
ExecutorUtil.shutdownAndAwaitTermination(executorCloser);
try { try {
if (!externalZkServer) { if (!externalZkServer) {
zkServer.shutdown(); zkServer.shutdown();

View File

@ -76,7 +76,7 @@ solrAdminApp.config([
templateUrl: 'partials/cluster_suggestions.html', templateUrl: 'partials/cluster_suggestions.html',
controller: 'ClusterSuggestionsController' controller: 'ClusterSuggestionsController'
}). }).
when('/:core', { when('/:core/core-overview', {
templateUrl: 'partials/core_overview.html', templateUrl: 'partials/core_overview.html',
controller: 'CoreOverviewController' controller: 'CoreOverviewController'
}). }).

View File

@ -43,7 +43,8 @@ solrAdminApp.controller('QueryController',
var copy = function(params, query) { var copy = function(params, query) {
for (var key in query) { for (var key in query) {
terms = query[key]; 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); set(key, terms);
} }
} }

View File

@ -235,7 +235,7 @@ solrAdminServices.factory('System',
for (key in params) { for (key in params) {
if (key != "core" && key != "handler") { if (key != "core" && key != "handler") {
for (var i in params[key]) { for (var i in params[key]) {
qs.push(key + "=" + params[key][i]); qs.push(key + "=" + encodeURIComponent(params[key][i]));
} }
} }
} }