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 2017/12/22 14:20:20 UTC
[2/4] httpcomponents-client git commit: Bugfix: fixed incorrect
behaviour of HttpCacheEntryMatcher,
fixed incorrect mapping of cache entries returned by bulk retrieval methods
Bugfix: fixed incorrect behaviour of HttpCacheEntryMatcher, fixed incorrect mapping of cache entries returned by bulk retrieval methods
Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/commit/8d08c38d
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/tree/8d08c38d
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/diff/8d08c38d
Branch: refs/heads/master
Commit: 8d08c38d4f7f1baf76eb483a295de557ed1e9d45
Parents: 29666a1
Author: Oleg Kalnichevski <ol...@apache.org>
Authored: Thu Dec 21 14:44:37 2017 +0100
Committer: Oleg Kalnichevski <ol...@apache.org>
Committed: Thu Dec 21 14:49:25 2017 +0100
----------------------------------------------------------------------
.../cache/AbstractSerializingAsyncCacheStorage.java | 15 +++++++++------
.../impl/cache/AbstractSerializingCacheStorage.java | 13 ++++++++-----
.../http/impl/cache/HttpCacheEntryMatcher.java | 3 ++-
.../TestAbstractSerializingAsyncCacheStorage.java | 8 ++++----
.../cache/TestAbstractSerializingCacheStorage.java | 8 ++++----
5 files changed, 27 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/8d08c38d/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingAsyncCacheStorage.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingAsyncCacheStorage.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingAsyncCacheStorage.java
index 69eb18c..60805dd 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingAsyncCacheStorage.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingAsyncCacheStorage.java
@@ -244,14 +244,17 @@ public abstract class AbstractSerializingAsyncCacheStorage<T, CAS> implements Ht
return bulkRestore(storageKeys, new FutureCallback<Map<String, T>>() {
@Override
- public void completed(final Map<String, T> storageObjects) {
+ public void completed(final Map<String, T> storageObjectMap) {
try {
final Map<String, HttpCacheEntry> resultMap = new HashMap<>();
- for (final Map.Entry<String, T> storageEntry: storageObjects.entrySet()) {
- final String key = storageEntry.getKey();
- final HttpCacheStorageEntry entry = serializer.deserialize(storageEntry.getValue());
- if (key.equals(entry.getKey())) {
- resultMap.put(key, entry.getContent());
+ for (final String key: keys) {
+ final String storageKey = digestToStorageKey(key);
+ final T storageObject = storageObjectMap.get(storageKey);
+ if (storageObject != null) {
+ final HttpCacheStorageEntry entry = serializer.deserialize(storageObject);
+ if (key.equals(entry.getKey())) {
+ resultMap.put(key, entry.getContent());
+ }
}
}
callback.completed(resultMap);
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/8d08c38d/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingCacheStorage.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingCacheStorage.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingCacheStorage.java
index 4a5ae98..c0b683a 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingCacheStorage.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AbstractSerializingCacheStorage.java
@@ -141,11 +141,14 @@ public abstract class AbstractSerializingCacheStorage<T, CAS> implements HttpCac
}
final Map<String, T> storageObjectMap = bulkRestore(storageKeys);
final Map<String, HttpCacheEntry> resultMap = new HashMap<>();
- for (final Map.Entry<String, T> storageEntry: storageObjectMap.entrySet()) {
- final String key = storageEntry.getKey();
- final HttpCacheStorageEntry entry = serializer.deserialize(storageEntry.getValue());
- if (key.equals(entry.getKey())) {
- resultMap.put(key, entry.getContent());
+ for (final String key: keys) {
+ final String storageKey = digestToStorageKey(key);
+ final T storageObject = storageObjectMap.get(storageKey);
+ if (storageObject != null) {
+ final HttpCacheStorageEntry entry = serializer.deserialize(storageObject);
+ if (key.equals(entry.getKey())) {
+ resultMap.put(key, entry.getContent());
+ }
}
}
return resultMap;
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/8d08c38d/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/HttpCacheEntryMatcher.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/HttpCacheEntryMatcher.java b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/HttpCacheEntryMatcher.java
index 7721d89..c0db981 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/HttpCacheEntryMatcher.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/HttpCacheEntryMatcher.java
@@ -80,11 +80,12 @@ public class HttpCacheEntryMatcher extends BaseMatcher<HttpCacheEntry> {
if (!Arrays.equals(expectedContent, otherContent)) {
return false;
}
+ return true;
} catch (final ResourceIOException ex) {
throw new RuntimeException(ex);
}
}
- return true;
+ return false;
}
@Override
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/8d08c38d/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingAsyncCacheStorage.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingAsyncCacheStorage.java b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingAsyncCacheStorage.java
index 8e5455e..8c0097a 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingAsyncCacheStorage.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingAsyncCacheStorage.java
@@ -498,8 +498,8 @@ public class TestAbstractSerializingAsyncCacheStorage {
Assert.assertThat(entryMap.get(key1), HttpCacheEntryMatcher.equivalent(value1));
Assert.assertThat(entryMap.get(key2), HttpCacheEntryMatcher.equivalent(value2));
- verify(impl).digestToStorageKey(key1);
- verify(impl).digestToStorageKey(key2);
+ verify(impl, Mockito.times(2)).digestToStorageKey(key1);
+ verify(impl, Mockito.times(2)).digestToStorageKey(key2);
verify(impl).bulkRestore(
Mockito.eq(Arrays.asList(storageKey1, storageKey2)),
Mockito.<FutureCallback<Map<String, byte[]>>>any());
@@ -547,8 +547,8 @@ public class TestAbstractSerializingAsyncCacheStorage {
Assert.assertThat(entryMap.get(key1), HttpCacheEntryMatcher.equivalent(value1));
Assert.assertThat(entryMap.get(key2), CoreMatchers.nullValue());
- verify(impl).digestToStorageKey(key1);
- verify(impl).digestToStorageKey(key2);
+ verify(impl, Mockito.times(2)).digestToStorageKey(key1);
+ verify(impl, Mockito.times(2)).digestToStorageKey(key2);
verify(impl).bulkRestore(
Mockito.eq(Arrays.asList(storageKey1, storageKey2)),
Mockito.<FutureCallback<Map<String, byte[]>>>any());
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/8d08c38d/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingCacheStorage.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingCacheStorage.java b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingCacheStorage.java
index 0537be7..a6bb2dc 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingCacheStorage.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAbstractSerializingCacheStorage.java
@@ -294,8 +294,8 @@ public class TestAbstractSerializingCacheStorage {
Assert.assertThat(entryMap.get(key1), HttpCacheEntryMatcher.equivalent(value1));
Assert.assertThat(entryMap.get(key2), HttpCacheEntryMatcher.equivalent(value2));
- verify(impl).digestToStorageKey(key1);
- verify(impl).digestToStorageKey(key2);
+ verify(impl, Mockito.times(2)).digestToStorageKey(key1);
+ verify(impl, Mockito.times(2)).digestToStorageKey(key2);
verify(impl).bulkRestore(Arrays.asList(storageKey1, storageKey2));
}
@@ -332,8 +332,8 @@ public class TestAbstractSerializingCacheStorage {
Assert.assertThat(entryMap.get(key1), HttpCacheEntryMatcher.equivalent(value1));
Assert.assertThat(entryMap.get(key2), CoreMatchers.nullValue());
- verify(impl).digestToStorageKey(key1);
- verify(impl).digestToStorageKey(key2);
+ verify(impl, Mockito.times(2)).digestToStorageKey(key1);
+ verify(impl, Mockito.times(2)).digestToStorageKey(key2);
verify(impl).bulkRestore(Arrays.asList(storageKey1, storageKey2));
}