You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by kr...@apache.org on 2022/10/25 01:38:05 UTC

[solr] 02/10: SOLR-16427: Evaluate and fix errorprone rules - DoubleBraceInitialization

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

krisden pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 5facd7bfbc482a8fbb7363ff4306c872e6b8969f
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Thu Oct 20 16:21:59 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - DoubleBraceInitialization
---
 gradle/validation/error-prone.gradle               |  1 -
 .../solr/handler/AnalysisRequestHandlerBase.java   | 17 ++--
 .../apache/solr/search/join/ScoreModeParser.java   | 21 +++--
 .../org/apache/solr/update/AddBlockUpdateTest.java | 61 +++-----------
 .../IgnoreLargeDocumentProcessorFactoryTest.java   | 21 ++---
 .../cloud/VMParamsZkCredentialsInjector.java       | 14 +---
 .../client/solrj/io/stream/JDBCStreamTest.java     | 12 ++-
 .../io/stream/eval/FieldValueEvaluatorTest.java    | 94 +++------------------
 .../solrj/io/stream/eval/LengthEvaluatorTest.java  | 29 +------
 ...DigestZkACLAndCredentialsProvidersTestBase.java | 98 +++++++---------------
 10 files changed, 90 insertions(+), 278 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index b2623efb6a1..fcb5cdef65d 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -84,7 +84,6 @@ allprojects { prj ->
             '-Xep:CanIgnoreReturnValueSuggester:OFF',
             '-Xep:ClassCanBeStatic:OFF',
             '-Xep:ComplexBooleanConstant:OFF',
-            '-Xep:DoubleBraceInitialization:OFF',
             '-Xep:DoubleCheckedLocking:OFF',
             '-Xep:EmptyCatch:OFF',
             '-Xep:EqualsGetClass:OFF',
diff --git a/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java b/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java
index 5b3d809bba0..5c8dd231258 100644
--- a/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java
+++ b/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java
@@ -22,7 +22,6 @@ import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -218,16 +217,12 @@ public abstract class AnalysisRequestHandlerBase extends RequestHandlerBase {
 
   // a static mapping of the reflected attribute keys to the names used in Solr 1.4
   static Map<String, String> ATTRIBUTE_MAPPING =
-      Collections.unmodifiableMap(
-          new HashMap<String, String>() {
-            {
-              put(OffsetAttribute.class.getName() + "#startOffset", "start");
-              put(OffsetAttribute.class.getName() + "#endOffset", "end");
-              put(TypeAttribute.class.getName() + "#type", "type");
-              put(TokenTrackingAttribute.class.getName() + "#position", "position");
-              put(TokenTrackingAttribute.class.getName() + "#positionHistory", "positionHistory");
-            }
-          });
+      Map.of(
+          OffsetAttribute.class.getName() + "#startOffset", "start",
+          OffsetAttribute.class.getName() + "#endOffset", "end",
+          TypeAttribute.class.getName() + "#type", "type",
+          TokenTrackingAttribute.class.getName() + "#position", "position",
+          TokenTrackingAttribute.class.getName() + "#positionHistory", "positionHistory");
 
   /**
    * Converts the list of Tokens to a list of NamedLists representing the tokens.
diff --git a/solr/core/src/java/org/apache/solr/search/join/ScoreModeParser.java b/solr/core/src/java/org/apache/solr/search/join/ScoreModeParser.java
index 5a33c6740c5..050ac7706af 100644
--- a/solr/core/src/java/org/apache/solr/search/join/ScoreModeParser.java
+++ b/solr/core/src/java/org/apache/solr/search/join/ScoreModeParser.java
@@ -24,20 +24,19 @@ import org.apache.lucene.search.join.ScoreMode;
 import org.apache.solr.search.SyntaxError;
 
 class ScoreModeParser {
-  @SuppressWarnings("serial")
-  private static final Map<String, ScoreMode> lowerAndCapitalCase =
-      Collections.unmodifiableMap(
-          new HashMap<>() {
-            {
-              for (ScoreMode s : ScoreMode.values()) {
-                put(s.name().toLowerCase(Locale.ROOT), s);
-                put(s.name(), s);
-              }
-            }
-          });
+  private static final Map<String, ScoreMode> lowerAndCapitalCase = getLowerAndCapitalCaseMap();
 
   private ScoreModeParser() {}
 
+  private static Map<String, ScoreMode> getLowerAndCapitalCaseMap() {
+    Map<String, ScoreMode> map = new HashMap<>(ScoreMode.values().length * 2);
+    for (ScoreMode s : ScoreMode.values()) {
+      map.put(s.name().toLowerCase(Locale.ROOT), s);
+      map.put(s.name(), s);
+    }
+    return Collections.unmodifiableMap(map);
+  }
+
   /**
    * recognizes as-is {@link ScoreMode} names, and lowercase as well, otherwise throws exception
    *
diff --git a/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java b/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java
index f3f3c5e18ad..35ac7d6fe4d 100644
--- a/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java
+++ b/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java
@@ -430,56 +430,17 @@ public class AddBlockUpdateTest extends SolrTestCaseJ4 {
 
     List<SolrInputDocument> docs = new ArrayList<>();
 
-    SolrInputDocument document1 =
-        new SolrInputDocument() {
-          {
-            final String id = id();
-            addField("id", id);
-            addField("parent_s", "X");
-
-            ArrayList<SolrInputDocument> ch1 =
-                new ArrayList<>(
-                    Arrays.asList(
-                        new SolrInputDocument() {
-                          {
-                            addField("id", id());
-                            addField("child_s", "y");
-                          }
-                        },
-                        new SolrInputDocument() {
-                          {
-                            addField("id", id());
-                            addField("child_s", "z");
-                          }
-                        }));
-
-            Collections.shuffle(ch1, random());
-            addChildDocuments(ch1);
-          }
-        };
-
-    SolrInputDocument document2 =
-        new SolrInputDocument() {
-          {
-            final String id = id();
-            addField("id", id);
-            addField("parent_s", "A");
-            addChildDocument(
-                new SolrInputDocument() {
-                  {
-                    addField("id", id());
-                    addField("child_s", "b");
-                  }
-                });
-            addChildDocument(
-                new SolrInputDocument() {
-                  {
-                    addField("id", id());
-                    addField("child_s", "c");
-                  }
-                });
-          }
-        };
+    SolrInputDocument document1 = new SolrInputDocument("id", id(), "parent_s", "X");
+    List<SolrInputDocument> ch1 =
+        Arrays.asList(
+            new SolrInputDocument("id", id(), "child_s", "y"),
+            new SolrInputDocument("id", id(), "child_s", "z"));
+    Collections.shuffle(ch1, random());
+    document1.addChildDocuments(ch1);
+
+    SolrInputDocument document2 = new SolrInputDocument("id", id(), "parent_s", "A");
+    document2.addChildDocument(new SolrInputDocument("id", id(), "child_s", "b"));
+    document2.addChildDocument(new SolrInputDocument("id", id(), "child_s", "c"));
 
     docs.add(document1);
     docs.add(document2);
diff --git a/solr/core/src/test/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactoryTest.java
index 07667cdfaba..8b06b16f080 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactoryTest.java
@@ -22,8 +22,6 @@ import static org.hamcrest.Matchers.containsString;
 
 import java.io.IOException;
 import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -91,9 +89,9 @@ public class IgnoreLargeDocumentProcessorFactoryTest extends SolrTestCase {
   public void testEstimateObjectSize() {
     assertEquals(estimate("abc"), 6);
     assertEquals(estimate("abcdefgh"), 16);
-    List<String> keys = Arrays.asList("int", "long", "double", "float", "str");
+    List<String> keys = List.of("int", "long", "double", "float", "str");
     assertEquals(estimate(keys), 42);
-    List<Object> values = Arrays.asList(12, 5L, 12.0, 5.0, "duck");
+    List<Object> values = List.of(12, 5L, 12.0, 5.0, "duck");
     assertEquals(estimate(values), 8);
 
     Map<String, Object> map = new HashMap<>();
@@ -125,9 +123,9 @@ public class IgnoreLargeDocumentProcessorFactoryTest extends SolrTestCase {
   public void testEstimateObjectSizeWithSingleChild() {
     assertEquals(estimate("abc"), 6);
     assertEquals(estimate("abcdefgh"), 16);
-    List<String> keys = Arrays.asList("int", "long", "double", "float", "str");
+    List<String> keys = List.of("int", "long", "double", "float", "str");
     assertEquals(estimate(keys), 42);
-    List<Object> values = Arrays.asList(12, 5L, 12.0, 5.0, "duck");
+    List<Object> values = List.of(12, 5L, 12.0, 5.0, "duck");
     assertEquals(estimate(values), 8);
     final String childDocKey = "testChildDoc";
 
@@ -166,9 +164,9 @@ public class IgnoreLargeDocumentProcessorFactoryTest extends SolrTestCase {
   public void testEstimateObjectSizeWithChildList() {
     assertEquals(estimate("abc"), 6);
     assertEquals(estimate("abcdefgh"), 16);
-    List<String> keys = Arrays.asList("int", "long", "double", "float", "str");
+    List<String> keys = List.of("int", "long", "double", "float", "str");
     assertEquals(estimate(keys), 42);
-    List<Object> values = Arrays.asList(12, 5L, 12.0, 5.0, "duck");
+    List<Object> values = List.of(12, 5L, 12.0, 5.0, "duck");
     assertEquals(estimate(values), 8);
     final String childDocKey = "testChildDoc";
 
@@ -194,12 +192,7 @@ public class IgnoreLargeDocumentProcessorFactoryTest extends SolrTestCase {
       childDocument.addField(entry.getKey(), entry.getValue());
     }
     List<SolrInputDocument> childList =
-        new ArrayList<>() {
-          {
-            add(childDocument);
-            add(new SolrInputDocument(childDocument));
-          }
-        };
+        List.of(childDocument, new SolrInputDocument(childDocument));
     document.addField(childDocKey, childList);
     mapWChild.put(childDocKey, childList);
     assertEquals(
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsZkCredentialsInjector.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsZkCredentialsInjector.java
index 649c3afce9c..f6deb219474 100755
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsZkCredentialsInjector.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsZkCredentialsInjector.java
@@ -24,7 +24,6 @@ import java.io.InputStreamReader;
 import java.io.Reader;
 import java.lang.invoke.MethodHandles;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 import org.apache.solr.common.SolrException;
@@ -119,16 +118,9 @@ public class VMParamsZkCredentialsInjector implements ZkCredentialsInjector {
         credentialsProps.getProperty(zkDigestReadonlyPasswordVMParamName);
 
     List<ZkCredential> zkCredentials =
-        new ArrayList<>(2) {
-          {
-            ZkCredential allUser =
-                new ZkCredential(digestAllUsername, digestAllPassword, Perms.ALL);
-            ZkCredential readUser =
-                new ZkCredential(digestReadonlyUsername, digestReadonlyPassword, Perms.READ);
-            add(allUser);
-            add(readUser);
-          }
-        };
+        List.of(
+            new ZkCredential(digestAllUsername, digestAllPassword, Perms.ALL),
+            new ZkCredential(digestReadonlyUsername, digestReadonlyPassword, Perms.READ));
     log.info(
         "Using zkCredentials: digestAllUsername: {}, digestReadonlyUsername: {}",
         digestAllUsername,
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
index 6f517e76275..a76ac4eb41c 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
@@ -24,9 +24,9 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
 import org.apache.lucene.tests.util.LuceneTestCase;
 import org.apache.solr.SolrTestCaseJ4.SuppressPointFields;
 import org.apache.solr.client.solrj.io.SolrClientCache;
@@ -301,12 +301,10 @@ public class JDBCStreamTest extends SolrCloudTestCase {
       TupleStream selectStream =
           new SelectStream(
               jdbcStream,
-              new HashMap<>() {
-                {
-                  put("CODE", "code_s");
-                  put("COUNTRY_NAME", "name_s");
-                }
-              });
+              Map.of(
+                  "CODE", "code_s",
+                  "COUNTRY_NAME", "name_s"));
+
       TupleStream searchStream =
           factory.constructStream(
               "search("
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/FieldValueEvaluatorTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/FieldValueEvaluatorTest.java
index 33b467e5747..413049268d7 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/FieldValueEvaluatorTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/FieldValueEvaluatorTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.solr.client.solrj.io.stream.eval;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.PriorityQueue;
 import org.apache.solr.SolrTestCase;
@@ -40,50 +40,15 @@ public class FieldValueEvaluatorTest extends SolrTestCase {
   @Test
   public void listTypes() throws Exception {
     values.clear();
-    values.put(
-        "a",
-        new ArrayList<Boolean>() {
-          {
-            add(true);
-            add(false);
-          }
-        });
-    values.put(
-        "b",
-        new ArrayList<Double>() {
-          {
-            add(0.0);
-            add(1.1);
-          }
-        });
-    values.put(
-        "c",
-        new ArrayList<Integer>() {
-          {
-            add(0);
-            add(1);
-          }
-        });
-    values.put(
-        "d",
-        new ArrayList<Long>() {
-          {
-            add(0L);
-            add(1L);
-          }
-        });
-    values.put(
-        "e",
-        new ArrayList<String>() {
-          {
-            add("first");
-            add("second");
-          }
-        });
+    values.put("a", List.of(true, false));
+    values.put("b", List.of(0.0, 1.1));
+    values.put("c", List.of(0, 1));
+    values.put("d", List.of(0L, 1L));
+    values.put("e", List.of("first", "second"));
 
     Tuple tuple = new Tuple(values);
 
-    for (String fieldName : new String[] {"a", "b", "c", "d", "e"}) {
+    for (String fieldName : List.of("a", "b", "c", "d", "e")) {
       assertTrue(new FieldValueEvaluator(fieldName).evaluate(tuple) instanceof Collection);
       assertEquals(2, ((Collection<?>) new FieldValueEvaluator(fieldName).evaluate(tuple)).size());
     }
@@ -127,46 +92,11 @@ public class FieldValueEvaluatorTest extends SolrTestCase {
   public void iterableTypes() throws Exception {
     values.clear();
 
-    values.put(
-        "a",
-        new PriorityQueue<Boolean>() {
-          {
-            add(true);
-            add(false);
-          }
-        });
-    values.put(
-        "b",
-        new PriorityQueue<Double>() {
-          {
-            add(0.0);
-            add(1.1);
-          }
-        });
-    values.put(
-        "c",
-        new PriorityQueue<Integer>() {
-          {
-            add(0);
-            add(1);
-          }
-        });
-    values.put(
-        "d",
-        new PriorityQueue<Long>() {
-          {
-            add(0L);
-            add(1L);
-          }
-        });
-    values.put(
-        "e",
-        new PriorityQueue<String>() {
-          {
-            add("first");
-            add("second");
-          }
-        });
+    values.put("a", new PriorityQueue<>(List.of(true, false)));
+    values.put("b", new PriorityQueue<>(List.of(0.0, 1.1)));
+    values.put("c", new PriorityQueue<>(List.of(0, 1)));
+    values.put("d", new PriorityQueue<>(List.of(0L, 1L)));
+    values.put("e", new PriorityQueue<>(List.of("first", "second")));
 
     Tuple tuple = new Tuple(values);
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/LengthEvaluatorTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/LengthEvaluatorTest.java
index be4b8775a93..6a497d68439 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/LengthEvaluatorTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/LengthEvaluatorTest.java
@@ -17,8 +17,8 @@
 package org.apache.solr.client.solrj.io.stream.eval;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import org.apache.solr.SolrTestCase;
 import org.apache.solr.client.solrj.io.Tuple;
@@ -29,7 +29,6 @@ import org.apache.solr.client.solrj.io.stream.expr.StreamFactory;
 import org.junit.Test;
 
 public class LengthEvaluatorTest extends SolrTestCase {
-
   StreamFactory factory;
   Map<String, Object> values;
 
@@ -49,39 +48,19 @@ public class LengthEvaluatorTest extends SolrTestCase {
     Object result;
 
     values.clear();
-    values.put(
-        "a",
-        new ArrayList<Integer>() {
-          {
-            add(1);
-            add(2);
-            add(4);
-          }
-        });
+    values.put("a", List.of(1, 2, 4));
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Long);
     assertEquals(3L, result);
 
     values.clear();
-    values.put(
-        "a",
-        new ArrayList<String>() {
-          {
-            add("a");
-            add("b");
-          }
-        });
+    values.put("a", List.of("a", "b"));
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Long);
     assertEquals(2L, result);
 
     values.clear();
-    values.put(
-        "a",
-        new ArrayList<String>() {
-          {
-          }
-        });
+    values.put("a", List.of());
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Long);
     assertEquals(0L, result);
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDigestZkACLAndCredentialsProvidersTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDigestZkACLAndCredentialsProvidersTestBase.java
index fae427ca8a0..f02eab7150b 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDigestZkACLAndCredentialsProvidersTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDigestZkACLAndCredentialsProvidersTestBase.java
@@ -27,8 +27,6 @@ import java.lang.invoke.MethodHandles;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
@@ -164,12 +162,9 @@ public class AbstractDigestZkACLAndCredentialsProvidersTestBase extends SolrTest
   @Test
   public void testNoCredentials() throws Exception {
     List<TestZkCredentialsInjector> testZkCredentialsInjectors =
-        new ArrayList<>() {
-          {
-            add(new TestZkCredentialsInjector(NoCredentialZkCredentialsInjector.class));
-            add(new TestZkCredentialsInjector(VMParamsZkCredentialsInjector.class));
-          }
-        };
+        List.of(
+            new TestZkCredentialsInjector(NoCredentialZkCredentialsInjector.class),
+            new TestZkCredentialsInjector(VMParamsZkCredentialsInjector.class));
 
     testInjectors(
         testZkCredentialsInjectors,
@@ -188,18 +183,13 @@ public class AbstractDigestZkACLAndCredentialsProvidersTestBase extends SolrTest
   @Test
   public void testWrongCredentials() throws Exception {
     List<TestZkCredentialsInjector> testZkCredentialsInjectors =
-        new ArrayList<>() {
-          {
-            add(new TestZkCredentialsInjector(WrongAllCredentialZkCredentialsInjector.class));
-            add(
-                new TestZkCredentialsInjector(
-                    VMParamsZkCredentialsInjector.class,
-                    Arrays.asList(
-                        DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME,
-                        DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME),
-                    Arrays.asList(ALL_USERNAME, ALL_PASSWORD + "Wrong")));
-          }
-        };
+        List.of(
+            new TestZkCredentialsInjector(WrongAllCredentialZkCredentialsInjector.class),
+            new TestZkCredentialsInjector(
+                VMParamsZkCredentialsInjector.class,
+                List.of(
+                    DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME, DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME),
+                List.of(ALL_USERNAME, ALL_PASSWORD + "Wrong")));
 
     testInjectors(
         testZkCredentialsInjectors,
@@ -218,18 +208,13 @@ public class AbstractDigestZkACLAndCredentialsProvidersTestBase extends SolrTest
   @Test
   public void testAllCredentials() throws Exception {
     List<TestZkCredentialsInjector> testZkCredentialsInjectors =
-        new ArrayList<>() {
-          {
-            add(new TestZkCredentialsInjector(AllCredentialZkCredentialsInjector.class));
-            add(
-                new TestZkCredentialsInjector(
-                    VMParamsZkCredentialsInjector.class,
-                    Arrays.asList(
-                        DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME,
-                        DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME),
-                    Arrays.asList(ALL_USERNAME, ALL_PASSWORD)));
-          }
-        };
+        List.of(
+            new TestZkCredentialsInjector(AllCredentialZkCredentialsInjector.class),
+            new TestZkCredentialsInjector(
+                VMParamsZkCredentialsInjector.class,
+                List.of(
+                    DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME, DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME),
+                List.of(ALL_USERNAME, ALL_PASSWORD)));
 
     testInjectors(
         testZkCredentialsInjectors, true, true, true, true, true, true, true, true, true, true);
@@ -238,18 +223,13 @@ public class AbstractDigestZkACLAndCredentialsProvidersTestBase extends SolrTest
   @Test
   public void testReadonlyCredentials() throws Exception {
     List<TestZkCredentialsInjector> testZkCredentialsInjectors =
-        new ArrayList<>() {
-          {
-            add(new TestZkCredentialsInjector(ConnectWithReadonlyCredsInjector.class));
-            add(
-                new TestZkCredentialsInjector(
-                    VMParamsZkCredentialsInjector.class,
-                    Arrays.asList(
-                        DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME,
-                        DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME),
-                    Arrays.asList(READONLY_USERNAME, READONLY_PASSWORD)));
-          }
-        };
+        List.of(
+            new TestZkCredentialsInjector(ConnectWithReadonlyCredsInjector.class),
+            new TestZkCredentialsInjector(
+                VMParamsZkCredentialsInjector.class,
+                List.of(
+                    DEFAULT_DIGEST_USERNAME_VM_PARAM_NAME, DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME),
+                List.of(READONLY_USERNAME, READONLY_PASSWORD)));
     testInjectors(
         testZkCredentialsInjectors,
         true,
@@ -493,46 +473,32 @@ public class AbstractDigestZkACLAndCredentialsProvidersTestBase extends SolrTest
       implements ZkCredentialsInjector {
     @Override
     public List<ZkCredential> getZkCredentials() {
-      return new ArrayList<>() {
-        {
-          add(new ZkCredential(ALL_USERNAME, ALL_PASSWORD, ZkCredential.Perms.ALL));
-          add(new ZkCredential(READONLY_USERNAME, READONLY_PASSWORD, ZkCredential.Perms.READ));
-        }
-      };
+      return List.of(
+          new ZkCredential(ALL_USERNAME, ALL_PASSWORD, ZkCredential.Perms.ALL),
+          new ZkCredential(READONLY_USERNAME, READONLY_PASSWORD, ZkCredential.Perms.READ));
     }
   }
 
   public static class ConnectWithReadonlyCredsInjector implements ZkCredentialsInjector {
     @Override
     public List<ZkCredential> getZkCredentials() {
-      return new ArrayList<>() {
-        {
-          // uses readonly creds to connect to zookeeper, hence "all"
-          add(new ZkCredential(READONLY_USERNAME, READONLY_PASSWORD, ZkCredential.Perms.ALL));
-        }
-      };
+      return List.of(
+          new ZkCredential(READONLY_USERNAME, READONLY_PASSWORD, ZkCredential.Perms.ALL));
     }
   }
 
   public static class AllCredentialZkCredentialsInjector implements ZkCredentialsInjector {
     @Override
     public List<ZkCredential> getZkCredentials() {
-      return new ArrayList<>() {
-        {
-          add(new ZkCredential(ALL_USERNAME, ALL_PASSWORD, ZkCredential.Perms.ALL));
-        }
-      };
+      return List.of(new ZkCredential(ALL_USERNAME, ALL_PASSWORD, ZkCredential.Perms.ALL));
     }
   }
 
   public static class WrongAllCredentialZkCredentialsInjector implements ZkCredentialsInjector {
     @Override
     public List<ZkCredential> getZkCredentials() {
-      return new ArrayList<>() {
-        {
-          add(new ZkCredential(ALL_USERNAME, ALL_PASSWORD + "Wrong", ZkCredential.Perms.ALL));
-        }
-      };
+      return List.of(
+          new ZkCredential(ALL_USERNAME, ALL_PASSWORD + "Wrong", ZkCredential.Perms.ALL));
     }
   }