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:48 UTC

[solr] 07/12: SOLR-16427: Evaluate and fix errorprone rules - IntLongMath

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 a79fefac9d62b91b6922a5111f002c2d3fa02857
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 15:55:25 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - IntLongMath
---
 gradle/validation/error-prone.gradle                           |  1 -
 solr/core/src/java/org/apache/solr/search/DocSetBuilder.java   |  2 +-
 solr/core/src/java/org/apache/solr/search/PointMerger.java     |  5 ++---
 solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java |  2 +-
 .../src/java/org/apache/solr/search/facet/UnInvertedField.java |  2 +-
 .../core/src/java/org/apache/solr/uninverting/DocTermOrds.java | 10 +++++-----
 solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java   |  4 ++--
 .../test/org/apache/solr/legacy/TestNumericRangeQuery64.java   |  2 +-
 solr/core/src/test/org/apache/solr/schema/TestPointFields.java |  2 +-
 .../test/org/apache/solr/uninverting/TestNumericTerms64.java   |  2 +-
 .../org/apache/solr/uninverting/TestUninvertingReader.java     |  2 +-
 .../test/org/apache/solr/util/hll/ProbabilisticTestUtil.java   |  2 +-
 .../solr/analytics/legacy/expression/LegacyFunctionTest.java   |  2 +-
 .../org/apache/solr/hdfs/store/blockcache/BlockDirectory.java  |  2 +-
 .../org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java  |  2 +-
 .../apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java  |  2 +-
 solr/solrj/src/java/org/noggit/JSONParser.java                 |  2 +-
 17 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 64c906442ac..a9ddb63c49d 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -87,7 +87,6 @@ allprojects { prj ->
             '-Xep:InconsistentCapitalization:OFF',
             '-Xep:InlineFormatString:OFF', // this introduces redundancy in format strings
             '-Xep:InputStreamSlowMultibyteRead:OFF',
-            '-Xep:IntLongMath:OFF',
             '-Xep:InvalidBlockTag:OFF', // this is needed for tags like lucene.internal
             '-Xep:JavaUtilDate:OFF',
             '-Xep:MissingSummary:OFF',
diff --git a/solr/core/src/java/org/apache/solr/search/DocSetBuilder.java b/solr/core/src/java/org/apache/solr/search/DocSetBuilder.java
index 93b1f3e2fd5..ae096b7cdc1 100644
--- a/solr/core/src/java/org/apache/solr/search/DocSetBuilder.java
+++ b/solr/core/src/java/org/apache/solr/search/DocSetBuilder.java
@@ -132,7 +132,7 @@ public final class DocSetBuilder {
 
   public void grow(int numDocs) {
     if (bitSet == null) {
-      final long newLength = pos + numDocs;
+      final long newLength = (long) pos + numDocs;
       if (newLength < threshold) {
         growBuffer((int) newLength);
       } else {
diff --git a/solr/core/src/java/org/apache/solr/search/PointMerger.java b/solr/core/src/java/org/apache/solr/search/PointMerger.java
index 253d466be8d..cb5c76fc2ea 100644
--- a/solr/core/src/java/org/apache/solr/search/PointMerger.java
+++ b/solr/core/src/java/org/apache/solr/search/PointMerger.java
@@ -65,9 +65,8 @@ public class PointMerger {
       if (readers.isEmpty()) {
         return;
       }
-      long ndocs =
-          readers.get(readers.size() - 1).docBase
-              + readers.get(readers.size() - 1).reader().maxDoc();
+      LeafReaderContext leafReaderContext = readers.get(readers.size() - 1);
+      long ndocs = (long) leafReaderContext.docBase + leafReaderContext.reader().maxDoc();
       for (LeafReaderContext ctx : readers) {
         PointValues pv = ctx.reader().getPointValues(field.getName());
         if (pv == null) continue;
diff --git a/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java b/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java
index f3af3df751f..53e1f2a2f67 100644
--- a/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java
+++ b/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java
@@ -750,7 +750,7 @@ public class SortedIntDocSet extends DocSet {
 
       @Override
       public long cost() {
-        return limitIdx - startIdx;
+        return (long) limitIdx - startIdx;
       }
     };
   }
diff --git a/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java b/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java
index 41d7f2a938e..5ddd4705116 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java
@@ -89,7 +89,7 @@ public class UnInvertedField extends DocTermOrds {
     int termNum;
 
     long memSize() {
-      return 8
+      return 8L
           + // obj header
           8
           + 8
diff --git a/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java b/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java
index 8fd64b63c72..d06b84c0d7a 100644
--- a/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java
+++ b/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java
@@ -603,7 +603,7 @@ public class DocTermOrds implements Accountable {
   private final class OrdWrappedTermsEnum extends BaseTermsEnum {
     private final TermsEnum termsEnum;
     private BytesRef term;
-    private long ord = -indexInterval - 1; // force "real" seek
+    private long ord = -indexInterval - 1L; // force "real" seek
 
     public OrdWrappedTermsEnum(LeafReader reader) throws IOException {
       assert indexedTermsArray != null;
@@ -667,7 +667,7 @@ public class DocTermOrds implements Accountable {
         // we hit the term exactly... lucky us!
         TermsEnum.SeekStatus seekStatus = termsEnum.seekCeil(target);
         assert seekStatus == TermsEnum.SeekStatus.FOUND;
-        ord = startIdx << indexIntervalBits;
+        ord = (long) startIdx << indexIntervalBits;
         setTerm();
         assert term != null;
         return SeekStatus.FOUND;
@@ -696,7 +696,7 @@ public class DocTermOrds implements Accountable {
         // seek to the right block
         TermsEnum.SeekStatus seekStatus = termsEnum.seekCeil(indexedTermsArray[startIdx]);
         assert seekStatus == TermsEnum.SeekStatus.FOUND;
-        ord = startIdx << indexIntervalBits;
+        ord = (long) startIdx << indexIntervalBits;
         setTerm();
         assert term != null; // should be non-null since it's in the index
       }
@@ -728,7 +728,7 @@ public class DocTermOrds implements Accountable {
         final int idx = (int) (targetOrd >>> indexIntervalBits);
         final BytesRef base = indexedTermsArray[idx];
         // System.out.println("  do seek term=" + base.utf8ToString());
-        ord = idx << indexIntervalBits;
+        ord = (long) idx << indexIntervalBits;
         delta = (int) (targetOrd - ord);
         final TermsEnum.SeekStatus seekStatus = termsEnum.seekCeil(base);
         assert seekStatus == TermsEnum.SeekStatus.FOUND;
@@ -952,7 +952,7 @@ public class DocTermOrds implements Accountable {
             assert te.ord() >= 0;
             return -te.ord() - 1;
           default: /* END */
-            return -numTerms() - 1;
+            return -numTerms() - 1L;
         }
       } catch (IOException e) {
         throw new RuntimeException(e);
diff --git a/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java b/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java
index e57de5b0bbe..1d8cd1bd092 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java
@@ -163,8 +163,8 @@ public class SplitShardTest extends SolrCloudTestCase {
     Slice s1_0 = coll.getSlice("shard1_0");
     Slice s1_1 = coll.getSlice("shard1_1");
     long fuzz = ((long) Integer.MAX_VALUE >> 3) + 1L;
-    long delta0 = s1_0.getRange().max - s1_0.getRange().min;
-    long delta1 = s1_1.getRange().max - s1_1.getRange().min;
+    long delta0 = (long) s1_0.getRange().max - s1_0.getRange().min;
+    long delta1 = (long) s1_1.getRange().max - s1_1.getRange().min;
     long expected0 = (Integer.MAX_VALUE >> 1) + fuzz;
     long expected1 = (Integer.MAX_VALUE >> 1) - fuzz;
     assertEquals("wrong range in s1_0", expected0, delta0);
diff --git a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java
index f495a751386..4cc2adfb73e 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java
@@ -130,7 +130,7 @@ public class TestNumericRangeQuery64 extends SolrTestCase {
       field2.setLongValue(val);
       fieldNoTrie.setLongValue(val);
 
-      val = l - (noDocs / 2);
+      val = (long) l - (noDocs / 2);
       ascfield8.setLongValue(val);
       ascfield6.setLongValue(val);
       ascfield4.setLongValue(val);
diff --git a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
index b82e1136c7d..5a4351b04ba 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
@@ -4702,7 +4702,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
     long inc1;
     for (; ; ) {
       number2 = random().nextInt();
-      inc1 = number2 - number1;
+      inc1 = (long) number2 - number1;
       if (Math.abs(inc1) < (long) Integer.MAX_VALUE) {
         break;
       }
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestNumericTerms64.java b/solr/core/src/test/org/apache/solr/uninverting/TestNumericTerms64.java
index e61991ee487..95335a1d805 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestNumericTerms64.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestNumericTerms64.java
@@ -100,7 +100,7 @@ public class TestNumericTerms64 extends SolrTestCase {
       field4.setLongValue(val);
       field2.setLongValue(val);
 
-      val = l - (noDocs / 2);
+      val = (long) l - (noDocs / 2);
       writer.addDocument(doc);
     }
     Map<String, Type> map = new HashMap<>();
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestUninvertingReader.java b/solr/core/src/test/org/apache/solr/uninverting/TestUninvertingReader.java
index 50993bd1600..9137ad3cd62 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestUninvertingReader.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestUninvertingReader.java
@@ -244,7 +244,7 @@ public class TestUninvertingReader extends SolrTestCase {
     final int NUM_DOCS = TestUtil.nextInt(random(), 200, 1500);
     final int MIN = TestUtil.nextInt(random(), 10, 100);
     final int MAX = MIN + TestUtil.nextInt(random(), 10, 100);
-    final long EXPECTED_VALSET_SIZE = 1 + MAX - MIN;
+    final long EXPECTED_VALSET_SIZE = 1L + MAX - MIN;
 
     { // (at least) one doc should have every value, so that at least one segment has every value
       final Document doc = new Document();
diff --git a/solr/core/src/test/org/apache/solr/util/hll/ProbabilisticTestUtil.java b/solr/core/src/test/org/apache/solr/util/hll/ProbabilisticTestUtil.java
index 3081a682b95..8a2a3d82af7 100644
--- a/solr/core/src/test/org/apache/solr/util/hll/ProbabilisticTestUtil.java
+++ b/solr/core/src/test/org/apache/solr/util/hll/ProbabilisticTestUtil.java
@@ -39,7 +39,7 @@ public class ProbabilisticTestUtil {
 
   /** Extracts the HLL register index from a raw value. */
   public static short getRegisterIndex(final long rawValue, final int log2m) {
-    final long mBitsMask = (1 << log2m) - 1;
+    final long mBitsMask = (1L << log2m) - 1;
     final short j = (short) (rawValue & mBitsMask);
     return j;
   }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyFunctionTest.java
index 4769395a042..0b99df0a402 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyFunctionTest.java
@@ -39,7 +39,7 @@ public class LegacyFunctionTest extends LegacyAbstractAnalyticsTest {
 
     for (int j = 0; j < NUM_LOOPS; ++j) {
       int i = j % INT + 1;
-      long l = j % LONG + 1;
+      long l = j % LONG + 1L;
       float f = j % FLOAT + 1;
       double d = j % DOUBLE + 1;
       double d0 = j % DOUBLE;
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockDirectory.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockDirectory.java
index a86bcee029f..75859bbdd97 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockDirectory.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockDirectory.java
@@ -42,7 +42,7 @@ public class BlockDirectory extends FilterDirectory implements ShutdownAwareDire
   public static final long BLOCK_SHIFT = Integer.getInteger("solr.hdfs.blockcache.blockshift", 13);
 
   public static final int BLOCK_SIZE = 1 << BLOCK_SHIFT;
-  public static final long BLOCK_MOD = BLOCK_SIZE - 1;
+  public static final long BLOCK_MOD = BLOCK_SIZE - 1L;
 
   public static long getBlock(long pos) {
     return pos >>> BLOCK_SHIFT;
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
index d4ea63140bb..b14b012280c 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
@@ -37,7 +37,7 @@ public class BlockCacheTest extends SolrTestCase {
     int blockSize = 1024;
 
     int slabSize = blockSize * 4096;
-    long totalMemory = 2 * slabSize;
+    long totalMemory = 2L * slabSize;
 
     BlockCache blockCache = new BlockCache(new Metrics(), true, totalMemory, slabSize, blockSize);
     byte[] buffer = new byte[1024];
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
index de3fef8f11c..f9e0dba9ac0 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
@@ -115,7 +115,7 @@ public class BlockDirectoryTest extends SolrTestCaseJ4 {
       Metrics metrics = new Metrics();
       int blockSize = 8192;
       int slabSize = blockSize * 16384;
-      long totalMemory = 1 * slabSize;
+      long totalMemory = 1L * slabSize;
       BlockCache blockCache = new BlockCache(metrics, true, totalMemory, slabSize, blockSize);
       BlockDirectoryCache cache =
           new BlockDirectoryCache(blockCache, "/collection1", metrics, true);
diff --git a/solr/solrj/src/java/org/noggit/JSONParser.java b/solr/solrj/src/java/org/noggit/JSONParser.java
index fcd0f483390..82a7b539202 100644
--- a/solr/solrj/src/java/org/noggit/JSONParser.java
+++ b/solr/solrj/src/java/org/noggit/JSONParser.java
@@ -467,7 +467,7 @@ public class JSONParser {
     out.unsafeWrite(firstChar); // unsafe OK since we know output is big enough
     // We build up the number in the negative plane since it's larger (by one) than
     // the positive plane.
-    long v = '0' - firstChar;
+    long v = (long) '0' - firstChar;
     // can't overflow a long in 18 decimal digits (i.e. 17 additional after the first).
     // we also need 22 additional to handle double so we'll handle in 2 separate loops.
     int i;