From 20d0f67edd15b03a072e745373297c1886d72f24 Mon Sep 17 00:00:00 2001 From: Shalin Shekhar Mangar Date: Mon, 20 Aug 2018 13:25:56 +0530 Subject: [PATCH] SOLR-12680: Fix ClassCastException and AIOOBE in TestSolrConfigHandlerConcurrent --- solr/CHANGES.txt | 2 + .../TestSolrConfigHandlerConcurrent.java | 38 ++++++++++--------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 8f8ffc45eda..c80958bb45f 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -318,6 +318,8 @@ Other Changes * SOLR-12014: Cryptic error message when creating a collection with sharding that violates autoscaling policies (noble) +* SOLR-12680: Fix ClassCastException and AIOOBE in TestSolrConfigHandlerConcurrent. (shalin) + ================== 7.4.0 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. diff --git a/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java b/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java index bf982ad3796..8af461ba27b 100644 --- a/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java +++ b/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java @@ -65,21 +65,23 @@ public class TestSolrConfigHandlerConcurrent extends AbstractFullDistribZkTestBa for (Object o : caches.entrySet()) { final Map.Entry e = (Map.Entry) o; - Thread t = new Thread() { - @Override - public void run() { - try { - ArrayList errs = new ArrayList(); - collectErrors.add(errs); - invokeBulkCall((String)e.getKey() , errs, (Map) e.getValue()); - } catch (Exception e) { - e.printStackTrace(); + if (e.getValue() instanceof Map) { + Map value = (Map) e.getValue(); + Thread t = new Thread() { + @Override + public void run() { + try { + List errs = new ArrayList<>(); + collectErrors.add(errs); + invokeBulkCall((String)e.getKey() , errs, value); + } catch (Exception e) { + e.printStackTrace(); + } } - - } - }; - threads.add(t); - t.start(); + }; + threads.add(t); + t.start(); + } } @@ -146,7 +148,7 @@ public class TestSolrConfigHandlerConcurrent extends AbstractFullDistribZkTestBa //get another node - String url = urls.get(urls.size()); + String url = urls.get(urls.size() - 1); long startTime = System.nanoTime(); long maxTimeoutSeconds = 20; @@ -163,13 +165,13 @@ public class TestSolrConfigHandlerConcurrent extends AbstractFullDistribZkTestBa Object o = getObjectByPath(m, true, asList("query", cacheName, "size")); - if(!val1.equals(o)) errmessages.add(StrUtils.formatString("'size' property not set, expected = {0}, actual {1}", val1, o)); + if(!val1.equals(o.toString())) errmessages.add(StrUtils.formatString("'size' property not set, expected = {0}, actual {1}", val1, o)); o = getObjectByPath(m, true, asList("query", cacheName, "initialSize")); - if(!val2.equals(o)) errmessages.add(StrUtils.formatString("'initialSize' property not set, expected = {0}, actual {1}", val2, o)); + if(!val2.equals(o.toString())) errmessages.add(StrUtils.formatString("'initialSize' property not set, expected = {0}, actual {1}", val2, o)); o = getObjectByPath(m, true, asList("query", cacheName, "autowarmCount")); - if(!val3.equals(o)) errmessages.add(StrUtils.formatString("'autowarmCount' property not set, expected = {0}, actual {1}", val3, o)); + if(!val3.equals(o.toString())) errmessages.add(StrUtils.formatString("'autowarmCount' property not set, expected = {0}, actual {1}", val3, o)); if(errmessages.isEmpty()) break; } if(!errmessages.isEmpty()) {