You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2023/09/14 13:31:06 UTC

[httpcomponents-client] 01/02: HTTPCLIENT-2277, regression: corrected wrong variant entry keys in cache hits returned by `BasicHttpCache#getVariants`

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

olegk pushed a commit to branch HTTPCLIENT-2277
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git

commit 8269a236be41775bd2ad167d13230241d89b8613
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Mon Sep 11 14:01:09 2023 +0200

    HTTPCLIENT-2277, regression: corrected wrong variant entry keys in cache hits returned by `BasicHttpCache#getVariants`
---
 .../java/org/apache/hc/client5/http/impl/cache/BasicHttpCache.java  | 5 +++--
 .../org/apache/hc/client5/http/impl/cache/TestBasicHttpCache.java   | 6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicHttpCache.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicHttpCache.java
index d48ec2f9f..aa56600ae 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicHttpCache.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicHttpCache.java
@@ -179,9 +179,10 @@ class BasicHttpCache implements HttpCache {
         if (root != null && root.hasVariants()) {
             final List<CacheHit> variants = new ArrayList<>();
             for (final String variantKey : root.getVariants()) {
-                final HttpCacheEntry variant = getInternal(variantKey + rootKey);
+                final String variantCacheKey = variantKey + rootKey;
+                final HttpCacheEntry variant = getInternal(variantCacheKey);
                 if (variant != null) {
-                    variants.add(new CacheHit(hit.rootKey, variantKey, variant));
+                    variants.add(new CacheHit(rootKey, variantCacheKey, variant));
                 }
             }
             return variants;
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestBasicHttpCache.java b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestBasicHttpCache.java
index 67e6bef86..b1c86b3c0 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestBasicHttpCache.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestBasicHttpCache.java
@@ -261,8 +261,10 @@ public class TestBasicHttpCache {
 
         assertNotNull(variantMap);
         assertEquals(2, variantMap.size());
-        MatcherAssert.assertThat(variantMap.get("{accept-encoding=gzip}"), HttpCacheEntryMatcher.equivalent(hit1.entry));
-        MatcherAssert.assertThat(variantMap.get("{accept-encoding=identity}"), HttpCacheEntryMatcher.equivalent(hit2.entry));
+        MatcherAssert.assertThat(variantMap.get("{accept-encoding=gzip}" + rootKey),
+                HttpCacheEntryMatcher.equivalent(hit1.entry));
+        MatcherAssert.assertThat(variantMap.get("{accept-encoding=identity}" + rootKey),
+                HttpCacheEntryMatcher.equivalent(hit2.entry));
     }
 
     @Test