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/28 15:21:49 UTC

[solr] 08/12: SOLR-16427: Evaluate and fix errorprone rules - ImmutableEnumChecker

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 209669f4861d64e3c324143361da2da84a6b6b88
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 16:49:30 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - ImmutableEnumChecker
---
 gradle/validation/error-prone.gradle               |  3 +--
 .../client/solrj/embedded/EmbeddedSolrServer.java  |  5 ++--
 .../api/collections/ReindexCollectionCmd.java      | 14 +++++-----
 .../src/java/org/apache/solr/cluster/Replica.java  |  2 +-
 .../solr/handler/admin/CollectionsHandler.java     | 13 +++-------
 .../solr/handler/admin/CoreAdminOperation.java     |  1 +
 .../solr/handler/component/HighlightComponent.java | 10 +++-----
 .../apache/solr/handler/component/StatsField.java  |  3 ++-
 .../java/org/apache/solr/schema/IndexSchema.java   | 10 ++++----
 .../java/org/apache/solr/schema/NumberType.java    |  3 ++-
 .../solr/search/CollapsingQParserPlugin.java       |  6 ++---
 .../java/org/apache/solr/security/AuditEvent.java  |  4 +--
 .../solr/security/PermissionNameProvider.java      |  1 +
 .../security/RuleBasedAuthorizationPluginBase.java |  1 +
 .../solr/response/TestRetrieveFieldsOptimizer.java | 30 ++++++++++------------
 .../org/apache/solr/handler/sql/SolrMethod.java    |  1 +
 .../org/apache/solr/common/params/TermsParams.java |  4 +--
 .../solr/common/util/JsonSchemaValidator.java      |  2 +-
 18 files changed, 53 insertions(+), 60 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index a9ddb63c49d..175b90f792d 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -77,13 +77,12 @@ allprojects { prj ->
             '-Xep:ArgumentSelectionDefectChecker:OFF',
             '-Xep:BadImport:OFF', // style preference that we don't want to enforce
             '-Xep:CanIgnoreReturnValueSuggester:OFF',
-            '-Xep:ComplexBooleanConstant:OFF',
+            '-Xep:ComplexBooleanConstant:OFF', // non trivial to fix in some cases
             '-Xep:DoubleCheckedLocking:OFF',
             '-Xep:EmptyCatch:OFF',
             '-Xep:Finally:OFF',
             '-Xep:FutureReturnValueIgnored:OFF',
             '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:ImmutableEnumChecker:OFF',
             '-Xep:InconsistentCapitalization:OFF',
             '-Xep:InlineFormatString:OFF', // this introduces redundancy in format strings
             '-Xep:InputStreamSlowMultibyteRead:OFF',
diff --git a/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java b/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
index 4a39487807c..3593f5eb376 100644
--- a/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
+++ b/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
@@ -72,13 +72,14 @@ public class EmbeddedSolrServer extends SolrClient {
   private final RequestWriterSupplier supplier;
   private boolean containerIsLocal = false;
 
+  @SuppressWarnings("ImmutableEnumChecker")
   public enum RequestWriterSupplier {
     JavaBin(() -> new BinaryRequestWriter()),
     XML(() -> new RequestWriter());
 
-    private Supplier<RequestWriter> supplier;
+    private final Supplier<RequestWriter> supplier;
 
-    private RequestWriterSupplier(final Supplier<RequestWriter> supplier) {
+    RequestWriterSupplier(final Supplier<RequestWriter> supplier) {
       this.supplier = supplier;
     }
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
index 37dc7eb9b82..c4ffc78a5bf 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
@@ -22,7 +22,6 @@ import static org.apache.solr.common.params.CollectionAdminParams.FOLLOW_ALIASES
 import com.google.common.annotations.VisibleForTesting;
 import java.lang.invoke.MethodHandles;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
@@ -138,10 +137,9 @@ public class ReindexCollectionCmd implements CollApiCmds.CollectionApiCommand {
       return states.get(p);
     }
 
-    static Map<String, State> states =
-        Collections.unmodifiableMap(
-            Stream.of(State.values())
-                .collect(Collectors.toMap(State::toLower, Function.identity())));
+    static final Map<String, State> states =
+        Stream.of(State.values())
+            .collect(Collectors.toUnmodifiableMap(State::toLower, Function.identity()));
   }
 
   public enum Cmd {
@@ -161,9 +159,9 @@ public class ReindexCollectionCmd implements CollApiCmds.CollectionApiCommand {
       return cmds.get(p);
     }
 
-    static Map<String, Cmd> cmds =
-        Collections.unmodifiableMap(
-            Stream.of(Cmd.values()).collect(Collectors.toMap(Cmd::toLower, Function.identity())));
+    static final Map<String, Cmd> cmds =
+        Stream.of(Cmd.values())
+            .collect(Collectors.toUnmodifiableMap(Cmd::toLower, Function.identity()));
   }
 
   private String zkHost;
diff --git a/solr/core/src/java/org/apache/solr/cluster/Replica.java b/solr/core/src/java/org/apache/solr/cluster/Replica.java
index ce3e0614894..2d6978c63f1 100644
--- a/solr/core/src/java/org/apache/solr/cluster/Replica.java
+++ b/solr/core/src/java/org/apache/solr/cluster/Replica.java
@@ -42,7 +42,7 @@ public interface Replica {
     TLOG('t'),
     PULL('p');
 
-    private char suffixChar;
+    private final char suffixChar;
 
     ReplicaType(char suffixChar) {
       this.suffixChar = suffixChar;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
index 5760ff0dff7..59d331cd344 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
@@ -575,6 +575,7 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
     results.add("status", status);
   }
 
+  @SuppressWarnings("ImmutableEnumChecker")
   public enum CollectionOperation implements CollectionOp {
     CREATE_OP(
         CREATE,
@@ -632,7 +633,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           copyPropertiesWithPrefix(req.getParams(), props, PROPERTY_PREFIX);
           return copyPropertiesWithPrefix(req.getParams(), props, "router.");
         }),
-    @SuppressWarnings({"unchecked"})
     COLSTATUS_OP(
         COLSTATUS,
         (req, rsp, h) -> {
@@ -854,7 +854,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
         }),
 
     /** List the aliases and associated properties. */
-    @SuppressWarnings({"unchecked"})
     LISTALIASES_OP(
         LISTALIASES,
         (req, rsp, h) -> {
@@ -1062,7 +1061,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           cp.setCollectionProperty(collection, name, val);
           return null;
         }),
-    @SuppressWarnings({"unchecked"})
     REQUESTSTATUS_OP(
         REQUESTSTATUS,
         (req, rsp, h) -> {
@@ -1128,14 +1126,13 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
     DELETESTATUS_OP(
         DELETESTATUS,
         new CollectionOp() {
-          @SuppressWarnings("unchecked")
           @Override
           public Map<String, Object> execute(
               SolrQueryRequest req, SolrQueryResponse rsp, CollectionsHandler h) throws Exception {
             final CoreContainer coreContainer = h.coreContainer;
             final String requestId = req.getParams().get(REQUESTID);
             final ZkController zkController = coreContainer.getZkController();
-            Boolean flush = req.getParams().getBool(CollectionAdminParams.FLUSH, false);
+            boolean flush = req.getParams().getBool(CollectionAdminParams.FLUSH, false);
 
             if (requestId == null && !flush) {
               throw new SolrException(
@@ -1229,7 +1226,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           return copyPropertiesWithPrefix(req.getParams(), props, PROPERTY_PREFIX);
         }),
     OVERSEERSTATUS_OP(OVERSEERSTATUS, (req, rsp, h) -> new LinkedHashMap<>()),
-    @SuppressWarnings({"unchecked"})
     DISTRIBUTEDAPIPROCESSING_OP(
         DISTRIBUTEDAPIPROCESSING,
         (req, rsp, h) -> {
@@ -1241,7 +1237,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           return null;
         }),
     /** Handle list collection request. Do list collection request to zk host */
-    @SuppressWarnings({"unchecked"})
     LIST_OP(
         LIST,
         (req, rsp, h) -> {
@@ -1858,8 +1853,8 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
     }
 
     public final CollectionOp fun;
-    CollectionAction action;
-    long timeOut;
+    final CollectionAction action;
+    final long timeOut;
 
     CollectionOperation(CollectionAction action, CollectionOp fun) {
       this(action, DEFAULT_COLLECTION_OP_TIMEOUT, fun);
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
index 75dfa9f137a..e2a4643d77e 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
@@ -82,6 +82,7 @@ import org.apache.solr.util.TestInjection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@SuppressWarnings("ImmutableEnumChecker")
 public enum CoreAdminOperation implements CoreAdminOp {
   CREATE_OP(
       CREATE,
diff --git a/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java b/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
index 918a036e787..3a1684cd45d 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
@@ -16,15 +16,13 @@
  */
 package org.apache.solr.handler.component;
 
-import static java.util.stream.Collectors.toMap;
-
 import com.google.common.base.MoreObjects;
 import java.io.IOException;
 import java.lang.reflect.Array;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import org.apache.lucene.search.Query;
 import org.apache.solr.common.SolrException;
@@ -61,9 +59,9 @@ public class HighlightComponent extends SearchComponent
     ORIGINAL("original");
 
     private static final Map<String, HighlightMethod> METHODS =
-        Collections.unmodifiableMap(
-            Stream.of(values())
-                .collect(toMap(HighlightMethod::getMethodName, Function.identity())));
+        Stream.of(values())
+            .collect(
+                Collectors.toUnmodifiableMap(HighlightMethod::getMethodName, Function.identity()));
 
     private final String methodName;
 
diff --git a/solr/core/src/java/org/apache/solr/handler/component/StatsField.java b/solr/core/src/java/org/apache/solr/handler/component/StatsField.java
index 78b506870a1..35fd161f5d0 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/StatsField.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/StatsField.java
@@ -74,7 +74,8 @@ public class StatsField {
    * @lucene.internal
    * @lucene.experimental
    */
-  public static enum Stat {
+  @SuppressWarnings("ImmutableEnumChecker")
+  public enum Stat {
     min(true),
     max(true),
     missing(true),
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 3907c674183..2c7a521cb2f 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -1564,6 +1564,7 @@ public class IndexSchema {
     private Set<String> requestedSourceFields;
     private Set<String> requestedDestinationFields;
 
+    @SuppressWarnings("ImmutableEnumChecker")
     public enum Handler {
       NAME(IndexSchema.NAME, sp -> sp.schema.getSchemaName()),
       VERSION(IndexSchema.VERSION, sp -> sp.schema.getVersion()),
@@ -1687,11 +1688,10 @@ public class IndexSchema {
   }
 
   public static Map<String, String> nameMapping =
-      Collections.unmodifiableMap(
-          Stream.of(SchemaProps.Handler.values())
-              .collect(
-                  Collectors.toMap(
-                      SchemaProps.Handler::getNameLower, SchemaProps.Handler::getRealName)));
+      Stream.of(SchemaProps.Handler.values())
+          .collect(
+              Collectors.toUnmodifiableMap(
+                  SchemaProps.Handler::getNameLower, SchemaProps.Handler::getRealName));
 
   public Map<String, Object> getNamedPropertyValues(String name, SolrParams params) {
     return new SchemaProps(name, params, this).toMap(new LinkedHashMap<>());
diff --git a/solr/core/src/java/org/apache/solr/schema/NumberType.java b/solr/core/src/java/org/apache/solr/schema/NumberType.java
index bf2b1271ed2..2f12231fe98 100644
--- a/solr/core/src/java/org/apache/solr/schema/NumberType.java
+++ b/solr/core/src/java/org/apache/solr/schema/NumberType.java
@@ -18,6 +18,7 @@ package org.apache.solr.schema;
 
 import org.apache.lucene.search.SortField;
 
+@SuppressWarnings("ImmutableEnumChecker")
 public enum NumberType {
   INTEGER(SortField.Type.INT, Integer.MIN_VALUE, Integer.MAX_VALUE),
   LONG(SortField.Type.LONG, Long.MIN_VALUE, Long.MAX_VALUE),
@@ -42,7 +43,7 @@ public enum NumberType {
    */
   public final Object sortMissingHigh;
 
-  private NumberType(SortField.Type sortType, Object sortMissingLow, Object sortMissingHigh) {
+  NumberType(SortField.Type sortType, Object sortMissingLow, Object sortMissingHigh) {
     this.sortType = sortType;
     this.sortMissingLow = sortMissingLow;
     this.sortMissingHigh = sortMissingHigh;
diff --git a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
index 3edb2073712..a44673efbb2 100644
--- a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
@@ -192,7 +192,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
-    static NullPolicy DEFAULT_POLICY = IGNORE;
+    static final NullPolicy DEFAULT_POLICY = IGNORE;
   }
 
   @Override
@@ -218,12 +218,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
     }
   }
 
-  public static enum GroupHeadSelectorType {
+  public enum GroupHeadSelectorType {
     MIN,
     MAX,
     SORT,
     SCORE;
-    public static EnumSet<GroupHeadSelectorType> MIN_MAX = EnumSet.of(MIN, MAX);
+    public static final EnumSet<GroupHeadSelectorType> MIN_MAX = EnumSet.of(MIN, MAX);
   }
 
   /** Models all the information about how group head documents should be selected */
diff --git a/solr/core/src/java/org/apache/solr/security/AuditEvent.java b/solr/core/src/java/org/apache/solr/security/AuditEvent.java
index aa4b847807a..316e83556f0 100644
--- a/solr/core/src/java/org/apache/solr/security/AuditEvent.java
+++ b/solr/core/src/java/org/apache/solr/security/AuditEvent.java
@@ -86,9 +86,9 @@ public class AuditEvent {
     ERROR("Error", "Request was not executed due to an error", Level.ERROR, 500);
 
     public final String message;
-    public String explanation;
+    public final String explanation;
     public final Level level;
-    public int status;
+    public final int status;
 
     EventType(String message, String explanation, Level level, int status) {
       this.message = message;
diff --git a/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java b/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
index 3427a51a5fe..3321c6ac248 100644
--- a/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
+++ b/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
@@ -34,6 +34,7 @@ import java.util.Set;
  */
 public interface PermissionNameProvider {
   // 'null' means the permission applies to system-level, while '*' means any collection
+  @SuppressWarnings("ImmutableEnumChecker")
   enum Name {
     COLL_EDIT_PERM("collection-admin-edit", null),
     COLL_READ_PERM("collection-admin-read", null),
diff --git a/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java b/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
index fc917cad38a..7c7de920e1d 100644
--- a/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
+++ b/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
@@ -366,6 +366,7 @@ public abstract class RuleBasedAuthorizationPluginBase
   @Override
   public void close() throws IOException {}
 
+  @SuppressWarnings("ImmutableEnumChecker")
   enum MatchStatus {
     USER_REQUIRED(AuthorizationResponse.PROMPT),
     NO_PERMISSIONS_FOUND(AuthorizationResponse.OK),
diff --git a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
index 0c04a08b4ec..e5cbeaf44d1 100644
--- a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
+++ b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
@@ -25,7 +25,6 @@ import static org.apache.solr.search.SolrReturnFields.FIELD_SOURCES.MIXED_SOURCE
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.time.Instant;
-import java.util.AbstractMap.SimpleEntry;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -38,7 +37,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 import org.apache.lucene.index.FieldInfo;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrDocument;
@@ -411,21 +409,19 @@ class RetrieveFieldType {
   }
 
   static final Map<TEST_TYPE, String> solrClassMap =
-      Collections.unmodifiableMap(
-          Stream.of(
-                  new SimpleEntry<>(TEST_TYPE.TINT, "solr.TrieIntField"),
-                  new SimpleEntry<>(TEST_TYPE.TLONG, "solr.TrieLongField"),
-                  new SimpleEntry<>(TEST_TYPE.TFLOAT, "solr.TrieFloatField"),
-                  new SimpleEntry<>(TEST_TYPE.TDOUBLE, "solr.TrieDoubleField"),
-                  new SimpleEntry<>(TEST_TYPE.TDATE, "solr.TrieDateField"),
-                  new SimpleEntry<>(TEST_TYPE.PINT, "solr.IntPointField"),
-                  new SimpleEntry<>(TEST_TYPE.PLONG, "solr.LongPointField"),
-                  new SimpleEntry<>(TEST_TYPE.PFLOAT, "solr.FloatPointField"),
-                  new SimpleEntry<>(TEST_TYPE.PDOUBLE, "solr.DoublePointField"),
-                  new SimpleEntry<>(TEST_TYPE.PDATE, "solr.DatePointField"),
-                  new SimpleEntry<>(TEST_TYPE.STRING, "solr.StrField"),
-                  new SimpleEntry<>(TEST_TYPE.BOOL, "solr.BoolField"))
-              .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
+      Map.ofEntries(
+          Map.entry(TEST_TYPE.TINT, "solr.TrieIntField"),
+          Map.entry(TEST_TYPE.TLONG, "solr.TrieLongField"),
+          Map.entry(TEST_TYPE.TFLOAT, "solr.TrieFloatField"),
+          Map.entry(TEST_TYPE.TDOUBLE, "solr.TrieDoubleField"),
+          Map.entry(TEST_TYPE.TDATE, "solr.TrieDateField"),
+          Map.entry(TEST_TYPE.PINT, "solr.IntPointField"),
+          Map.entry(TEST_TYPE.PLONG, "solr.LongPointField"),
+          Map.entry(TEST_TYPE.PFLOAT, "solr.FloatPointField"),
+          Map.entry(TEST_TYPE.PDOUBLE, "solr.DoublePointField"),
+          Map.entry(TEST_TYPE.PDATE, "solr.DatePointField"),
+          Map.entry(TEST_TYPE.STRING, "solr.StrField"),
+          Map.entry(TEST_TYPE.BOOL, "solr.BoolField"));
 
   RetrieveFieldType(IndexSchema schema, String name, TEST_TYPE type) {
     this.name = name;
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
index 0450ef935aa..b52a4bf0588 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
@@ -21,6 +21,7 @@ import java.util.List;
 import org.apache.calcite.linq4j.tree.Types;
 
 /** Builtin methods in the Solr adapter. */
+@SuppressWarnings("ImmutableEnumChecker")
 enum SolrMethod {
   SOLR_QUERYABLE_QUERY(
       SolrTable.SolrQueryable.class,
diff --git a/solr/solrj/src/java/org/apache/solr/common/params/TermsParams.java b/solr/solrj/src/java/org/apache/solr/common/params/TermsParams.java
index 283f3e7ecf1..129c7e204b8 100644
--- a/solr/solrj/src/java/org/apache/solr/common/params/TermsParams.java
+++ b/solr/solrj/src/java/org/apache/solr/common/params/TermsParams.java
@@ -76,7 +76,7 @@ public interface TermsParams {
 
   public static final String TERMS_REGEXP_FLAG = TERMS_REGEXP_STR + ".flag";
 
-  public static enum TermsRegexpFlag {
+  enum TermsRegexpFlag {
     UNIX_LINES(Pattern.UNIX_LINES),
     CASE_INSENSITIVE(Pattern.CASE_INSENSITIVE),
     COMMENTS(Pattern.COMMENTS),
@@ -86,7 +86,7 @@ public interface TermsParams {
     UNICODE_CASE(Pattern.UNICODE_CASE),
     CANON_EQ(Pattern.CANON_EQ);
 
-    int value;
+    final int value;
 
     TermsRegexpFlag(int value) {
       this.value = value;
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java b/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
index 0501d19486f..4837736f103 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
@@ -150,7 +150,7 @@ enum Type {
   NULL(null),
   UNKNOWN(Object.class);
 
-  Class<?> type;
+  final Class<?> type;
 
   Type(Class<?> type) {
     this.type = type;