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

vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new 776c52dd56 fix(deps): update dependency 
com.github.ben-manes.caffeine:caffeine to v3
776c52dd56 is described below

commit 776c52dd56151da7425cb419aaa102cc3aaa77e6
Author: Mend Renovate <[email protected]>
AuthorDate: Mon Nov 17 06:26:16 2025 +0000

    fix(deps): update dependency com.github.ben-manes.caffeine:caffeine to v3
---
 src/bom-thirdparty/build.gradle.kts                  |  2 +-
 .../jmeter/testelement/AbstractTestElement.java      |  5 ++---
 src/dist/src/dist/expected_release_jars.csv          |  3 +--
 .../jmeter/protocol/http/control/CacheManager.java   | 20 +++++++-------------
 4 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/src/bom-thirdparty/build.gradle.kts 
b/src/bom-thirdparty/build.gradle.kts
index b3d31587b7..20d277858b 100644
--- a/src/bom-thirdparty/build.gradle.kts
+++ b/src/bom-thirdparty/build.gradle.kts
@@ -44,7 +44,7 @@ dependencies {
         api("bsf:bsf:2.4.0")
         api("cglib:cglib-nodep:3.3.0")
         api("com.fifesoft:rsyntaxtextarea:3.6.0")
-        api("com.github.ben-manes.caffeine:caffeine:2.9.3")
+        api("com.github.ben-manes.caffeine:caffeine:3.2.3")
         api("com.github.weisj:darklaf-core:3.1.1")
         api("com.github.weisj:darklaf-extensions-rsyntaxarea:0.4.1")
         api("com.github.weisj:darklaf-property-loader:3.1.1")
diff --git 
a/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java 
b/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
index 84527726b7..71823d6a24 100644
--- 
a/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
+++ 
b/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
@@ -47,7 +47,6 @@ import org.apache.jmeter.threads.AbstractThreadGroup;
 import org.apache.jmeter.threads.JMeterContext;
 import org.apache.jmeter.threads.JMeterContextService;
 import org.apiguardian.api.API;
-import org.checkerframework.checker.lock.qual.GuardedBy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -113,7 +112,7 @@ public abstract class AbstractTestElement implements 
TestElement, Serializable,
      * however, when element in not shared, then adds overhead as every lock 
and unlock allocates memory.
      * So in case of cloned-per-thread elements, we use {@link 
Collections#synchronizedMap(Map)} instead.
      */
-    @GuardedBy("lock")
+    // @GuardedBy("lock")
     private final Map<String, JMeterProperty> propMap =
             lock != null
                     ? new LinkedHashMap<>()
@@ -138,7 +137,7 @@ public abstract class AbstractTestElement implements 
TestElement, Serializable,
     /**
      * Holds properties added when isRunningVersion is true
      */
-    @GuardedBy("lock")
+    // @GuardedBy("lock")
     private transient Set<JMeterProperty> temporaryProperties;
 
     private transient boolean runningVersion = false;
diff --git a/src/dist/src/dist/expected_release_jars.csv 
b/src/dist/src/dist/expected_release_jars.csv
index 812195318c..48fe46e7a0 100644
--- a/src/dist/src/dist/expected_release_jars.csv
+++ b/src/dist/src/dist/expected_release_jars.csv
@@ -22,8 +22,7 @@
 33826,batik-xml-1.17.jar
 113369,bsf-2.4.0.jar
 389033,bsh-2.0b6.jar
-912143,caffeine-2.9.3.jar
-241628,checker-qual-3.52.0.jar
+1020615,caffeine-3.2.3.jar
 401021,commons-codec-1.20.0.jar
 588337,commons-collections-3.2.2.jar
 898652,commons-collections4-4.5.0.jar
diff --git 
a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/control/CacheManager.java
 
b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/control/CacheManager.java
index bed950ae15..8852f6332e 100644
--- 
a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/control/CacheManager.java
+++ 
b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/control/CacheManager.java
@@ -269,25 +269,19 @@ public class CacheManager extends ConfigTestElement 
implements TestStateListener
                 // else expiresDate computed in (expires!=null) condition is 
used
             }
         }
+        Cache<String, CacheEntry> cache = getCache();
         if (varyHeader != null) {
             if (log.isDebugEnabled()) {
                 log.debug("Set entry into cache for url {} and vary {} ({})", 
url,
                         varyHeader,
                         varyUrl(url, varyHeader.getKey(), 
varyHeader.getValue()));
             }
-            getCache().put(url, new CacheEntry(lastModified, expiresDate, 
etag, varyHeader.getKey()));
-            getCache().put(varyUrl(url, varyHeader.getKey(), 
varyHeader.getValue()), new CacheEntry(lastModified, expiresDate, etag, null));
-        } else {
-            // Makes expiresDate effectively-final
-            Date entryExpiresDate = expiresDate;
-            getCache().get(
-                    url,
-                    key -> {
-                        CacheEntry cacheEntry = new CacheEntry(lastModified, 
entryExpiresDate, etag, null);
-                        log.debug("Set entry {} into cache for url {}", url, 
cacheEntry);
-                        return cacheEntry;
-                    }
-            );
+            cache.put(url, new CacheEntry(lastModified, expiresDate, etag, 
varyHeader.getKey()));
+            cache.put(varyUrl(url, varyHeader.getKey(), 
varyHeader.getValue()), new CacheEntry(lastModified, expiresDate, etag, null));
+        } else if (cache.getIfPresent(url) == null) {
+            CacheEntry cacheEntry = new CacheEntry(lastModified, expiresDate, 
etag, null);
+            log.debug("Set entry {} into cache for url {}", url, cacheEntry);
+            cache.put(url, cacheEntry);
         }
     }
 

Reply via email to