You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by no...@apache.org on 2022/09/07 11:11:10 UTC

[solr] branch main updated: SOLR-16405: Update Caffeine from 3.0.5 to 3.1.1 (#1000)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new bddbe7acfde SOLR-16405: Update Caffeine from 3.0.5 to 3.1.1 (#1000)
bddbe7acfde is described below

commit bddbe7acfde0ef8a1876fc8a90d6c092b7e8c1bc
Author: Noble Paul <no...@users.noreply.github.com>
AuthorDate: Wed Sep 7 21:11:03 2022 +1000

    SOLR-16405: Update Caffeine from 3.0.5 to 3.1.1 (#1000)
---
 solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java     | 1 +
 solr/core/src/java/org/apache/solr/cloud/ZkController.java         | 1 +
 solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java | 1 +
 .../src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java | 2 ++
 solr/core/src/java/org/apache/solr/parser/QueryParser.java         | 3 ++-
 .../src/java/org/apache/solr/search/ExtendedDismaxQParser.java     | 1 +
 solr/core/src/java/org/apache/solr/search/FunctionQParser.java     | 2 ++
 solr/core/src/java/org/apache/solr/search/PointMerger.java         | 1 +
 solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java  | 1 +
 .../src/java/org/apache/solr/search/facet/UnInvertedField.java     | 1 +
 .../src/java/org/apache/solr/servlet/CoreContainerProvider.java    | 1 +
 solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java | 1 +
 solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java    | 1 +
 solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java | 2 ++
 .../solr/update/processor/IgnoreLargeDocumentProcessorFactory.java | 1 +
 solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java    | 4 +++-
 solr/core/src/java/org/apache/solr/util/SimplePostTool.java        | 2 ++
 solr/core/src/java/org/apache/solr/util/TestInjection.java         | 2 ++
 .../apache/solr/util/hll/BigEndianAscendingWordDeserializer.java   | 1 +
 solr/core/src/java/org/apache/solr/util/hll/HLL.java               | 1 +
 solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java           | 1 +
 solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java     | 1 +
 solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java | 1 +
 .../org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java   | 1 +
 .../src/test/org/apache/solr/handler/TestReplicationHandler.java   | 1 +
 .../test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java  | 3 ---
 .../component/TestDistributedStatsComponentCardinality.java        | 2 ++
 .../src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java   | 1 +
 .../src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java   | 2 ++
 solr/core/src/test/org/apache/solr/request/TestFaceting.java       | 1 +
 solr/core/src/test/org/apache/solr/schema/DocValuesTest.java       | 1 +
 solr/licenses/caffeine-3.0.5.jar.sha1                              | 1 -
 solr/licenses/caffeine-3.1.1.jar.sha1                              | 1 +
 solr/licenses/checker-qual-3.20.0.jar.sha1                         | 1 -
 solr/licenses/checker-qual-3.22.0.jar.sha1                         | 1 +
 solr/licenses/error_prone_annotations-2.11.0.jar.sha1              | 1 -
 solr/licenses/error_prone_annotations-2.14.0.jar.sha1              | 1 +
 .../src/java/org/apache/solr/analytics/value/LongValueStream.java  | 1 +
 .../apache/solr/analytics/value/constant/ConstantLongValue.java    | 1 +
 .../apache/solr/analytics/function/mapping/LogFunctionTest.java    | 2 ++
 .../solr/analytics/legacy/expression/LegacyExpressionTest.java     | 2 ++
 .../solr/analytics/legacy/expression/LegacyFunctionTest.java       | 1 +
 .../java/org/apache/solr/client/solrj/impl/Http2SolrClient.java    | 2 ++
 .../org/apache/solr/client/solrj/io/graph/GatherNodesStream.java   | 1 +
 .../src/java/org/apache/solr/common/cloud/CompositeIdRouter.java   | 1 +
 .../src/java/org/apache/solr/common/util/FastJavaBinDecoder.java   | 1 +
 solr/solrj/src/java/org/apache/solr/common/util/Utils.java         | 7 ++++++-
 .../test/org/apache/solr/client/solrj/io/stream/StreamingTest.java | 1 +
 .../src/test/org/apache/solr/common/util/ContentStreamTest.java    | 7 +++++++
 solr/solrj/src/test/org/apache/solr/common/util/TestHash.java      | 1 +
 versions.lock                                                      | 6 +++---
 versions.props                                                     | 2 +-
 52 files changed, 74 insertions(+), 13 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
index 968f34c9492..fccd9109062 100644
--- a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
+++ b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
@@ -442,6 +442,7 @@ public class RecoveryStrategy implements Runnable, Closeable {
   /**
    * @return true if we have reached max attempts or should stop recovering for some other reason
    */
+  @SuppressWarnings("NarrowCalculation")
   private boolean waitBetweenRecoveries(String coreName) {
     // lets pause for a moment and we need to try again...
     // TODO: we don't want to retry for some problems?
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index cf3011ce0a9..8b11d3ea879 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -1062,6 +1062,7 @@ public class ZkController implements Closeable {
     }
   }
 
+  @SuppressWarnings("NarrowCalculation")
   private void checkForExistingEphemeralNode() throws KeeperException, InterruptedException {
     if (zkRunOnly) {
       return;
diff --git a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
index db76839db79..51eacafb648 100644
--- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
@@ -1025,6 +1025,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
   // TODO Should a failure retrieving any piece of info mark the overall request as a failure?  Is
   // there a core set of values that are required to make a response here useful?
   /** Used for showing statistics and progress information. */
+  @SuppressWarnings("NarrowCalculation")
   private NamedList<Object> getReplicationDetails(
       SolrQueryResponse rsp, boolean showFollowerDetails) {
     NamedList<Object> details = new SimpleOrderedMap<>();
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java b/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
index f64b5951eee..10c5297c6f6 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
@@ -355,6 +355,7 @@ public class IndexSizeEstimator {
     result.put(NORMS, stats);
   }
 
+  @SuppressWarnings("LongDoubleConversion")
   private void estimatePoints(Map<String, Object> result) throws IOException {
     log.info("- estimating points...");
     Map<String, Map<String, Object>> stats = new HashMap<>();
@@ -512,6 +513,7 @@ public class IndexSizeEstimator {
     result.put(TERMS, stats);
   }
 
+  @SuppressWarnings("LongDoubleConversion")
   private void estimateTermStats(
       String field, Terms terms, Map<String, Map<String, Object>> stats, boolean isSampling)
       throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/parser/QueryParser.java b/solr/core/src/java/org/apache/solr/parser/QueryParser.java
index 12776d1d38a..67fa3b7a162 100644
--- a/solr/core/src/java/org/apache/solr/parser/QueryParser.java
+++ b/solr/core/src/java/org/apache/solr/parser/QueryParser.java
@@ -833,7 +833,8 @@ if (splitOnWhitespace == false) {
       return this;
     }
   }
-  static private final LookaheadSuccess jj_ls = new LookaheadSuccess();
+    @SuppressWarnings("StaticAssignmentOfThrowable")
+    static private final LookaheadSuccess jj_ls = new LookaheadSuccess();
   private boolean jj_scan_token(int kind) {
      if (jj_scanpos == jj_lastpos) {
        jj_la--;
diff --git a/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java b/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java
index bf1f9866fc6..0682136cceb 100644
--- a/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java
@@ -949,6 +949,7 @@ public class ExtendedDismaxQParser extends QParser {
     RANGE
   }
 
+  @SuppressWarnings("StaticAssignmentOfThrowable")
   static final RuntimeException unknownField = new RuntimeException("UnknownField");
 
   static {
diff --git a/solr/core/src/java/org/apache/solr/search/FunctionQParser.java b/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
index aa1a8294b5a..686fe2ff7fc 100644
--- a/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
@@ -82,6 +82,7 @@ public class FunctionQParser extends QParser {
     return parseMultipleSources;
   }
 
+  @SuppressWarnings("ErroneousBitwiseExpression")
   @Override
   public Query parse() throws SyntaxError {
     ValueSource vs = null;
@@ -334,6 +335,7 @@ public class FunctionQParser extends QParser {
    *
    * @param doConsumeDelimiter whether to consume a delimiter following the ValueSource
    */
+  @SuppressWarnings("ErroneousBitwiseExpression")
   protected ValueSource parseValueSource(boolean doConsumeDelimiter) throws SyntaxError {
     return parseValueSource(
         doConsumeDelimiter
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 44ea8bedb0b..d50c3f3d7a2 100644
--- a/solr/core/src/java/org/apache/solr/search/PointMerger.java
+++ b/solr/core/src/java/org/apache/solr/search/PointMerger.java
@@ -453,5 +453,6 @@ public class PointMerger {
     }
   }
 
+  @SuppressWarnings("StaticAssignmentOfThrowable")
   static BreakException breakException = new BreakException();
 }
diff --git a/solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java b/solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java
index 6e146a179f5..d68c5848368 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java
@@ -327,6 +327,7 @@ public abstract class DocValuesAcc extends SlotAcc {
     double[] result;
     double initialValue;
 
+    @SuppressWarnings("LongDoubleConversion")
     public DoubleSortedSetDVAcc(
         FacetContext fcontext, SchemaField sf, int numSlots, long initialValue) throws IOException {
       super(fcontext, sf, numSlots);
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 fd937ba07c1..38e87ec6dfa 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
@@ -169,6 +169,7 @@ public class UnInvertedField extends DocTermOrds {
     maxTermCounts[termNum] = docFreq;
   }
 
+  @SuppressWarnings("NarrowCalculation")
   public long memSize() {
     // can cache the mem size since it shouldn't change
     if (memsz != 0) return memsz;
diff --git a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
index d287d21a186..663f70eeb67 100644
--- a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
+++ b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
@@ -325,6 +325,7 @@ public class CoreContainerProvider implements ServletContextListener {
    *
    * @return the Solr home, absolute and normalized.
    */
+  @SuppressWarnings("BanJNDI")
   private static Path computeSolrHome(ServletContext servletContext) {
 
     // start with explicit check of servlet config...
diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
index a144b0108e6..500353b0e94 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
@@ -608,6 +608,7 @@ public class SolrRequestParsers {
   static class MultipartRequestParser implements SolrRequestParser {
     private final MultipartConfigElement multipartConfigElement;
 
+    @SuppressWarnings("NarrowCalculation")
     public MultipartRequestParser(int uploadLimitKB) {
       multipartConfigElement =
           new MultipartConfigElement(
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 d344e045284..811fdf014ae 100644
--- a/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java
+++ b/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java
@@ -168,6 +168,7 @@ public class DocTermOrds implements Accountable {
 
   // TODO: Why is indexedTermsArray not part of this?
   /** Returns total bytes used. */
+  @SuppressWarnings("NarrowCalculation")
   @Override
   public long ramBytesUsed() {
     // can cache the mem size since it shouldn't change
diff --git a/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java b/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
index 6c308f22328..0629b79a4de 100644
--- a/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
+++ b/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
@@ -894,6 +894,7 @@ public class FieldCacheImpl implements FieldCache {
       }
     }
 
+    @SuppressWarnings("NarrowCalculation")
     @Override
     public long ramBytesUsed() {
       return bytes.ramBytesUsed()
@@ -1107,6 +1108,7 @@ public class FieldCacheImpl implements FieldCache {
       };
     }
 
+    @SuppressWarnings("NarrowCalculation")
     @Override
     public long ramBytesUsed() {
       return bytes.ramBytesUsed()
diff --git a/solr/core/src/java/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactory.java
index b141e7595e6..5a76315097e 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactory.java
@@ -140,6 +140,7 @@ public class IgnoreLargeDocumentProcessorFactory extends UpdateRequestProcessorF
       return primitiveEstimate(obj, 0L);
     }
 
+    @SuppressWarnings("NarrowCalculation")
     private static long primitiveEstimate(Object obj, long def) {
       Class<?> clazz = obj.getClass();
       if (clazz.isPrimitive()) {
diff --git a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
index 258d307c780..e7a3a0bac1a 100644
--- a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
+++ b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
@@ -153,6 +153,7 @@ public class ConcurrentLRUCache<K, V> implements Cache<K, V>, Accountable {
     setRunCleanupThread(runCleanupThread);
   }
 
+  @SuppressWarnings("NarrowCalculation")
   public ConcurrentLRUCache(int size, int lowerWatermark) {
     this(
         size,
@@ -645,7 +646,7 @@ public class ConcurrentLRUCache<K, V> implements Cache<K, V>, Accountable {
       myMaxSize = maxSz;
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "NarrowCalculation"})
     Iterable<CacheEntry<K, V>> getValues() {
       return (Iterable) Collections.unmodifiableCollection(Arrays.asList(heap));
     }
@@ -838,6 +839,7 @@ public class ConcurrentLRUCache<K, V> implements Cache<K, V>, Accountable {
   }
 
   public static class Stats implements Accountable {
+    @SuppressWarnings("NarrowCalculation")
     private static final long RAM_BYTES_USED =
         // accounts for field refs
         RamUsageEstimator.shallowSizeOfInstance(Stats.class)
diff --git a/solr/core/src/java/org/apache/solr/util/SimplePostTool.java b/solr/core/src/java/org/apache/solr/util/SimplePostTool.java
index dd7616cea8d..abbeb11a520 100644
--- a/solr/core/src/java/org/apache/solr/util/SimplePostTool.java
+++ b/solr/core/src/java/org/apache/solr/util/SimplePostTool.java
@@ -572,6 +572,7 @@ public class SimplePostTool {
    *
    * @return number of files posted
    */
+  @SuppressWarnings("NarrowCalculation")
   int postFiles(File[] files, OutputStream out, String type) {
     int filesPosted = 0;
     for (File srcFile : files) {
@@ -658,6 +659,7 @@ public class SimplePostTool {
    * @param out output stream to write to
    * @return number of pages crawled on this level and below
    */
+  @SuppressWarnings("NarrowCalculation")
   protected int webCrawl(int level, OutputStream out) {
     int numPages = 0;
     LinkedHashSet<URI> stack = backlog.get(level);
diff --git a/solr/core/src/java/org/apache/solr/util/TestInjection.java b/solr/core/src/java/org/apache/solr/util/TestInjection.java
index c4f0b99cb0b..8145a8684d3 100644
--- a/solr/core/src/java/org/apache/solr/util/TestInjection.java
+++ b/solr/core/src/java/org/apache/solr/util/TestInjection.java
@@ -236,6 +236,7 @@ public class TestInjection {
     return true;
   }
 
+  @SuppressWarnings("NarrowCalculation")
   public static boolean injectRandomDelayInCoreCreation() {
     if (randomDelayInCoreCreation != null) {
       Random rand = random();
@@ -257,6 +258,7 @@ public class TestInjection {
     return true;
   }
 
+  @SuppressWarnings("NarrowCalculation")
   public static boolean injectNonGracefullClose(CoreContainer cc) {
     if (cc.isShutDown() && nonGracefullClose != null) {
       Random rand = random();
diff --git a/solr/core/src/java/org/apache/solr/util/hll/BigEndianAscendingWordDeserializer.java b/solr/core/src/java/org/apache/solr/util/hll/BigEndianAscendingWordDeserializer.java
index 582d63f95e3..8bd68f0745e 100644
--- a/solr/core/src/java/org/apache/solr/util/hll/BigEndianAscendingWordDeserializer.java
+++ b/solr/core/src/java/org/apache/solr/util/hll/BigEndianAscendingWordDeserializer.java
@@ -48,6 +48,7 @@ class BigEndianAscendingWordDeserializer implements IWordDeserializer {
    *     than or equal to zero.
    * @param bytes the byte array containing the serialized words. Cannot be <code>null</code>.
    */
+  @SuppressWarnings("NarrowCalculation")
   public BigEndianAscendingWordDeserializer(
       final int wordLength, final int bytePadding, final byte[] bytes) {
     if ((wordLength < 1) || (wordLength > 64)) {
diff --git a/solr/core/src/java/org/apache/solr/util/hll/HLL.java b/solr/core/src/java/org/apache/solr/util/hll/HLL.java
index 618bada5ca2..918f8ce9655 100644
--- a/solr/core/src/java/org/apache/solr/util/hll/HLL.java
+++ b/solr/core/src/java/org/apache/solr/util/hll/HLL.java
@@ -153,6 +153,7 @@ public class HLL implements Cloneable {
    * @param type the type in the promotion hierarchy which this instance should start at. This
    *     cannot be <code>null</code>.
    */
+  @SuppressWarnings("NarrowCalculation")
   public HLL(
       final int log2m,
       final int regwidth,
diff --git a/solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java b/solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java
index 1776ccd9fdd..e5fbd429a70 100644
--- a/solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java
+++ b/solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java
@@ -91,6 +91,7 @@ final class HLLUtil {
    *     expected. This must be greater than zero.
    * @return a register size in bits (i.e. <code>log2(log2(n))</code>)
    */
+  @SuppressWarnings("LongDoubleConversion")
   public static int registerBitSize(final long expectedUniqueElements) {
     return Math.max(
         HLL.MINIMUM_REGWIDTH_PARAM,
diff --git a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
index ad1d228efcb..16713301caa 100644
--- a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
@@ -634,6 +634,7 @@ public class MetricUtils {
   }
 
   // some snapshots represent time in ns, other snapshots represent raw values (eg. chunk size)
+  @SuppressWarnings("LongDoubleConversion")
   static void addSnapshot(
       MapWriter.EntryWriter ew,
       Snapshot snapshot,
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
index 2501af1a388..c403a1387e1 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
@@ -270,6 +270,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
    *
    * @return <code>0</code> if a commit was done, else <code>itersSinceLastCommit + 1</code>
    */
+  @SuppressWarnings("NarrowCalculation")
   private static int maybeCommit(
       final Random rand, final int itersSinceLastCommit, final int numIters)
       throws IOException, SolrServerException {
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
index 7234809d690..55fddced18c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
@@ -177,6 +177,7 @@ public class TestStressCloudBlindAtomicUpdates extends SolrCloudTestCase {
     CLIENTS.clear();
   }
 
+  @SuppressWarnings("NarrowCalculation")
   @Before
   private void clearCloudCollection() throws Exception {
     TestInjection.reset();
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
index ec3a681a054..6ce5bc0522d 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
@@ -1453,6 +1453,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     checkForSingleIndex(followerJetty, true);
   }
 
+  @SuppressWarnings("NarrowCalculation")
   @Test
   public void testRateLimitedReplication() throws Exception {
 
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
index 7d4787ce8f0..93250636f38 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
@@ -191,9 +191,6 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
         ManagementFactory.getThreadMXBean().isSynchronizerUsageSupported());
 
     // unique class name to show up as a lock class name in output
-    final class TestReentrantLockStruct extends ReentrantLock {
-      /* empty */
-    }
 
     final List<String> failures = new ArrayList<>();
     final CountDownLatch lockIsHeldLatch = new CountDownLatch(1);
diff --git a/solr/core/src/test/org/apache/solr/handler/component/TestDistributedStatsComponentCardinality.java b/solr/core/src/test/org/apache/solr/handler/component/TestDistributedStatsComponentCardinality.java
index 58fa1736db2..f2486ea1629 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/TestDistributedStatsComponentCardinality.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/TestDistributedStatsComponentCardinality.java
@@ -107,6 +107,7 @@ public class TestDistributedStatsComponentCardinality extends BaseDistributedSea
     commit();
   }
 
+  @SuppressWarnings("NarrowCalculation")
   public void test() throws Exception {
     buildIndex();
 
@@ -261,6 +262,7 @@ public class TestDistributedStatsComponentCardinality extends BaseDistributedSea
   }
 
   /** Returns the (max) expected relative error according ot the HLL algorithm docs */
+  @SuppressWarnings("LongDoubleConversion")
   private static double expectedRelativeError(final int log2m) {
     final long m = 1 << log2m;
     // theoretical error is 1.04D * sqrt(m)
diff --git a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java
index 9c752b4a7c7..5271f82cee0 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery32.java
@@ -402,6 +402,7 @@ public class TestNumericRangeQuery32 extends SolrTestCase {
     dir.close();
   }
 
+  @SuppressWarnings("NarrowCalculation")
   private void testRangeSplit(int precisionStep) throws Exception {
     String field = "ascfield" + precisionStep;
     // 10 random tests
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 c8162515d76..2f638ba5b35 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java
@@ -51,6 +51,7 @@ public class TestNumericRangeQuery64 extends SolrTestCase {
   private static IndexReader reader = null;
   private static IndexSearcher searcher = null;
 
+  @SuppressWarnings("NarrowCalculation")
   @BeforeClass
   public static void beforeClass() throws Exception {
     noDocs = atLeast(4096);
@@ -425,6 +426,7 @@ public class TestNumericRangeQuery64 extends SolrTestCase {
     dir.close();
   }
 
+  @SuppressWarnings("NarrowCalculation")
   private void testRangeSplit(int precisionStep) throws Exception {
     String field = "ascfield" + precisionStep;
     // 10 random tests
diff --git a/solr/core/src/test/org/apache/solr/request/TestFaceting.java b/solr/core/src/test/org/apache/solr/request/TestFaceting.java
index 63df2a7052d..0d452227d39 100644
--- a/solr/core/src/test/org/apache/solr/request/TestFaceting.java
+++ b/solr/core/src/test/org/apache/solr/request/TestFaceting.java
@@ -77,6 +77,7 @@ public class TestFaceting extends SolrTestCaseJ4 {
     req = null;
   }
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   void doTermEnum(int size) throws Exception {
     // System.out.println("doTermEnum size=" + size);
     close();
diff --git a/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java b/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
index 75a85b375a8..9973b32bdf0 100644
--- a/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
@@ -993,6 +993,7 @@ public class DocValuesTest extends SolrTestCaseJ4 {
         "//result/doc[2]/str[@name='id'][.=4]");
   }
 
+  @SuppressWarnings("BoxedPrimitiveEquality")
   @Test
   public void testFloatAndDoubleRangeQueryRandom() {
 
diff --git a/solr/licenses/caffeine-3.0.5.jar.sha1 b/solr/licenses/caffeine-3.0.5.jar.sha1
deleted file mode 100644
index 3a1291e1337..00000000000
--- a/solr/licenses/caffeine-3.0.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3de85488bf535299d5f36d98626605331a10de87
diff --git a/solr/licenses/caffeine-3.1.1.jar.sha1 b/solr/licenses/caffeine-3.1.1.jar.sha1
new file mode 100644
index 00000000000..3458e9cf18d
--- /dev/null
+++ b/solr/licenses/caffeine-3.1.1.jar.sha1
@@ -0,0 +1 @@
+b08f9f234ae51adf8b7a3dcdfcf115aa258fafcb
diff --git a/solr/licenses/checker-qual-3.20.0.jar.sha1 b/solr/licenses/checker-qual-3.20.0.jar.sha1
deleted file mode 100644
index 8e4c60da082..00000000000
--- a/solr/licenses/checker-qual-3.20.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c13d84bf34ed1a652c44bf73fe8a97d4f1ce17ff
diff --git a/solr/licenses/checker-qual-3.22.0.jar.sha1 b/solr/licenses/checker-qual-3.22.0.jar.sha1
new file mode 100644
index 00000000000..0589667737f
--- /dev/null
+++ b/solr/licenses/checker-qual-3.22.0.jar.sha1
@@ -0,0 +1 @@
+8e37f79d2cfe45a670e13f728b5e536ba65ac3ef
diff --git a/solr/licenses/error_prone_annotations-2.11.0.jar.sha1 b/solr/licenses/error_prone_annotations-2.11.0.jar.sha1
deleted file mode 100644
index 3300195ded6..00000000000
--- a/solr/licenses/error_prone_annotations-2.11.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c5a0ace696d3f8b1c1d8cc036d8c03cc0cbe6b69
diff --git a/solr/licenses/error_prone_annotations-2.14.0.jar.sha1 b/solr/licenses/error_prone_annotations-2.14.0.jar.sha1
new file mode 100644
index 00000000000..7f102a60197
--- /dev/null
+++ b/solr/licenses/error_prone_annotations-2.14.0.jar.sha1
@@ -0,0 +1 @@
+9f01b3654d3c536859705f09f8d267ee977b4004
diff --git a/solr/modules/analytics/src/java/org/apache/solr/analytics/value/LongValueStream.java b/solr/modules/analytics/src/java/org/apache/solr/analytics/value/LongValueStream.java
index ab8b9ebd2d4..d11ffe2817f 100644
--- a/solr/modules/analytics/src/java/org/apache/solr/analytics/value/LongValueStream.java
+++ b/solr/modules/analytics/src/java/org/apache/solr/analytics/value/LongValueStream.java
@@ -47,6 +47,7 @@ public interface LongValueStream extends AnalyticsValueStream {
    */
   public abstract static class AbstractLongValueStream implements CastingLongValueStream {
     @Override
+    @SuppressWarnings("LongDoubleConversion")
     public void streamDoubles(DoubleConsumer cons) {
       streamLongs((long val) -> cons.accept(val));
     }
diff --git a/solr/modules/analytics/src/java/org/apache/solr/analytics/value/constant/ConstantLongValue.java b/solr/modules/analytics/src/java/org/apache/solr/analytics/value/constant/ConstantLongValue.java
index 8d5f60e92a6..ec87284c1e4 100644
--- a/solr/modules/analytics/src/java/org/apache/solr/analytics/value/constant/ConstantLongValue.java
+++ b/solr/modules/analytics/src/java/org/apache/solr/analytics/value/constant/ConstantLongValue.java
@@ -70,6 +70,7 @@ public class ConstantLongValue extends ConstantValue implements CastingLongValue
   }
 
   @Override
+  @SuppressWarnings("LongDoubleConversion")
   public void streamDoubles(DoubleConsumer cons) {
     cons.accept(value);
   }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LogFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LogFunctionTest.java
index be02a2006d6..5bc00e9c741 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LogFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/LogFunctionTest.java
@@ -122,6 +122,7 @@ public class LogFunctionTest extends SolrTestCaseJ4 {
     assertTrue(func.exists());
   }
 
+  @SuppressWarnings("LongDoubleConversion")
   @Test
   public void oneMultiOneSingleValueParameterTest() {
     TestLongValueStream base = new TestLongValueStream();
@@ -165,6 +166,7 @@ public class LogFunctionTest extends SolrTestCaseJ4 {
     assertFalse(values.hasNext());
   }
 
+  @SuppressWarnings("LongDoubleConversion")
   @Test
   public void oneSingleOneMultiValueParameterTest() {
     TestDoubleValue base = new TestDoubleValue();
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyExpressionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyExpressionTest.java
index 8ed0b5965f5..7a98f06fdba 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyExpressionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyExpressionTest.java
@@ -127,6 +127,7 @@ public class LegacyExpressionTest extends LegacyAbstractAnalyticsTest {
     assertEquals(getRawResponse(), Math.pow(meanResult, countResult), result, 0.0);
   }
 
+  @SuppressWarnings("LongDoubleConversion")
   @Test
   public void negateTest() throws Exception {
     double sumResult = (Double) getStatResult("nr", "sum", VAL_TYPE.DOUBLE);
@@ -138,6 +139,7 @@ public class LegacyExpressionTest extends LegacyAbstractAnalyticsTest {
     assertEquals(getRawResponse(), -1 * countResult, lresult, 0.0);
   }
 
+  @SuppressWarnings("LongDoubleConversion")
   @Test
   public void absoluteValueTest() throws Exception {
     double sumResult = (Double) getStatResult("avr", "sum", VAL_TYPE.DOUBLE);
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 9afed6f412f..7e898a887b1 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
@@ -33,6 +33,7 @@ public class LegacyFunctionTest extends LegacyAbstractAnalyticsTest {
   public static final int NUM_LOOPS = 100;
 
   @BeforeClass
+  @SuppressWarnings("LongDoubleConversion")
   public static void beforeClass() throws Exception {
     initCore("solrconfig-analytics.xml", "schema-analytics.xml");
     h.update("<delete><query>*:*</query></delete>");
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index 170bfcf5c3e..8db33b4125e 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -387,7 +387,9 @@ public class Http2SolrClient extends SolrClient {
     outStream.flush();
   }
 
+  @SuppressWarnings("StaticAssignmentOfThrowable")
   private static final Exception CANCELLED_EXCEPTION = new Exception();
+
   private static final Cancellable FAILED_MAKING_REQUEST_CANCELLABLE = () -> {};
 
   public Cancellable asyncRequest(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/GatherNodesStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/GatherNodesStream.java
index 924e6afffce..01a8873653c 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/GatherNodesStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/GatherNodesStream.java
@@ -607,6 +607,7 @@ public class GatherNodesStream extends TupleStream implements Expressible {
     }
   }
 
+  @SuppressWarnings("NarrowCalculation")
   private String[] getTenSecondWindow(int size, int lag, String start) {
     try {
       List<String> windowList = new ArrayList<>();
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java
index ef7b083109f..34f786dd840 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java
@@ -213,6 +213,7 @@ public class CompositeIdRouter extends HashBasedRouter {
   }
 
   @Override
+  @SuppressWarnings("NarrowCalculation")
   public List<Range> partitionRange(int partitions, Range range) {
     int min = range.min;
     int max = range.max;
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/FastJavaBinDecoder.java b/solr/solrj/src/java/org/apache/solr/common/util/FastJavaBinDecoder.java
index 3a31d468c5e..dc7a0be53be 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/FastJavaBinDecoder.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/FastJavaBinDecoder.java
@@ -621,6 +621,7 @@ public class FastJavaBinDecoder implements DataEntry.FastDecoder {
       }
 
       @Override
+      @SuppressWarnings("UnnecessaryLongToIntConversion")
       public Object readObject(StreamCodec codec, EntryImpl entry) {
         return Long.valueOf((int) entry.numericVal);
       }
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/Utils.java b/solr/solrj/src/java/org/apache/solr/common/util/Utils.java
index 1ddac204b51..944af542810 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/Utils.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/Utils.java
@@ -303,6 +303,11 @@ public class Utils {
   }
 
   public static Object fromJSON(byte[] utf8, int offset, int length) {
+    return fromJSON(utf8, offset, length, STANDARDOBJBUILDER);
+  }
+
+  public static Object fromJSON(
+      byte[] utf8, int offset, int length, Function<JSONParser, ObjectBuilder> fun) {
     if (utf8 == null || utf8.length == 0 || length == 0) {
       return Collections.emptyMap();
     }
@@ -317,7 +322,7 @@ public class Utils {
             | JSONParser.ALLOW_MISSING_COLON_COMMA_BEFORE_OBJECT
             | JSONParser.OPTIONAL_OUTER_BRACES);
     try {
-      return STANDARDOBJBUILDER.apply(parser).getValStrict();
+      return fun.apply(parser).getValStrict();
     } catch (IOException e) {
       throw new RuntimeException(e); // should never happen w/o using real IO
     }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamingTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamingTest.java
index a4621087dd9..9c9c4801869 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamingTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamingTest.java
@@ -3020,6 +3020,7 @@ public class StreamingTest extends SolrCloudTestCase {
     return true;
   }
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   protected boolean assertGroupOrder(Tuple tuple, int... ids) {
     @SuppressWarnings({"rawtypes"})
     List group = (List) tuple.get("tuples");
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java b/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
index d31ae44e31b..718d1a0218e 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
@@ -35,6 +35,7 @@ import org.apache.solr.core.SolrResourceLoader;
 /** Tests {@link ContentStream} such as "stream.file". */
 public class ContentStreamTest extends SolrTestCaseJ4 {
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   public void testStringStream() throws IOException {
     String input = "aads ghaskdgasgldj asl sadg ajdsg &jag # @ hjsakg hsakdg hjkas s";
     ContentStreamBase stream = new ContentStreamBase.StringStream(input);
@@ -43,6 +44,7 @@ public class ContentStreamTest extends SolrTestCaseJ4 {
     assertEquals(input, IOUtils.toString(stream.getReader()));
   }
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   public void testFileStream() throws IOException {
     File file = new File(createTempDir().toFile(), "README");
     try (SolrResourceLoader srl = new SolrResourceLoader(Paths.get("").toAbsolutePath());
@@ -66,6 +68,7 @@ public class ContentStreamTest extends SolrTestCaseJ4 {
     }
   }
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   public void testFileStreamGZIP() throws IOException {
     File file = new File(createTempDir().toFile(), "README.gz");
 
@@ -92,6 +95,7 @@ public class ContentStreamTest extends SolrTestCaseJ4 {
     }
   }
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   public void testURLStream() throws IOException {
     File file = new File(createTempDir().toFile(), "README");
 
@@ -123,6 +127,7 @@ public class ContentStreamTest extends SolrTestCaseJ4 {
     }
   }
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   public void testURLStreamGZIP() throws IOException {
     File file = new File(createTempDir().toFile(), "README.gz");
 
@@ -150,6 +155,7 @@ public class ContentStreamTest extends SolrTestCaseJ4 {
     }
   }
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   public void testURLStreamCSVGZIPExtention() throws IOException {
     File file = new File(createTempDir().toFile(), "README.CSV.gz");
 
@@ -177,6 +183,7 @@ public class ContentStreamTest extends SolrTestCaseJ4 {
     }
   }
 
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   public void testURLStreamJSONGZIPExtention() throws IOException {
     File file = new File(createTempDir().toFile(), "README.json.gzip");
 
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestHash.java b/solr/solrj/src/test/org/apache/solr/common/util/TestHash.java
index 1a66efdd37a..90a3bd17439 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/TestHash.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/TestHash.java
@@ -67,6 +67,7 @@ public class TestHash extends SolrTestCase {
 
   // test that the hash of the UTF-16 encoded Java String is equal to the hash of the unicode code
   // points
+  @SuppressWarnings("UnnecessaryLongToIntConversion")
   void tstEquiv(int[] utf32, int len) {
     int seed = 100;
     StringBuilder sb = new StringBuilder();
diff --git a/versions.lock b/versions.lock
index 5396e0f9715..7c50d8a6e0f 100644
--- a/versions.lock
+++ b/versions.lock
@@ -11,7 +11,7 @@ com.fasterxml.jackson.core:jackson-core:2.13.3 (13 constraints: 08f8728c)
 com.fasterxml.jackson.core:jackson-databind:2.13.3 (16 constraints: 5a33b8f5)
 com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.13.3 (1 constraints: b90ea666)
 com.fasterxml.woodstox:woodstox-core:6.2.8 (3 constraints: ba28f6ba)
-com.github.ben-manes.caffeine:caffeine:3.0.5 (1 constraints: 0a05ff35)
+com.github.ben-manes.caffeine:caffeine:3.1.1 (1 constraints: 0705fe35)
 com.github.jai-imageio:jai-imageio-core:1.4.0 (1 constraints: 5c0ced01)
 com.github.junrar:junrar:7.4.1 (1 constraints: 630c0c02)
 com.github.openjson:openjson:1.0.12 (1 constraints: 8b0c6d0e)
@@ -33,7 +33,7 @@ com.google.cloud:google-cloud-core:2.3.5 (3 constraints: ba2ee5dd)
 com.google.cloud:google-cloud-core-http:2.3.5 (1 constraints: ee0fe795)
 com.google.cloud:google-cloud-storage:2.2.3 (2 constraints: 6e1c99f3)
 com.google.code.gson:gson:2.8.9 (6 constraints: f25833c8)
-com.google.errorprone:error_prone_annotations:2.11.0 (4 constraints: 3038d4ba)
+com.google.errorprone:error_prone_annotations:2.14.0 (4 constraints: 3438b8bc)
 com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37)
 com.google.guava:guava:31.0.1-jre (17 constraints: 850e5ccb)
 com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (2 constraints: 4b35b0a0)
@@ -215,7 +215,7 @@ org.carrot2:morfologik-fsa:2.1.9 (1 constraints: db0d9c36)
 org.carrot2:morfologik-polish:2.1.9 (1 constraints: d312541e)
 org.carrot2:morfologik-stemming:2.1.9 (2 constraints: d81fb300)
 org.ccil.cowan.tagsoup:tagsoup:1.2.1 (1 constraints: 5b0ce801)
-org.checkerframework:checker-qual:3.20.0 (5 constraints: 514652ea)
+org.checkerframework:checker-qual:3.22.0 (5 constraints: 4b466fe6)
 org.codehaus.janino:commons-compiler:3.0.11 (2 constraints: 81192719)
 org.codehaus.janino:janino:3.0.11 (1 constraints: 8d0d3f3a)
 org.codehaus.woodstox:stax2-api:4.2.1 (2 constraints: 36152eaf)
diff --git a/versions.props b/versions.props
index 0b2d51d1582..d7d863ef4bd 100644
--- a/versions.props
+++ b/versions.props
@@ -4,7 +4,7 @@ com.carrotsearch:hppc=0.9.1
 com.cybozu.labs:langdetect=1.1-20120112
 com.fasterxml.jackson:jackson-bom=2.13.3
 com.fasterxml.woodstox:woodstox-core=6.2.8
-com.github.ben-manes.caffeine:caffeine=3.0.5
+com.github.ben-manes.caffeine:caffeine=3.1.1
 com.github.spotbugs:*=4.5.3
 com.github.zafarkhaja:java-semver=0.9.0
 com.google.cloud:google-cloud-bom=0.166.0