|
@@ -90,6 +90,9 @@ public abstract class AbstractFeatureService<K, V> {
|
|
|
|
|
|
private V load(K key) {
|
|
|
V feature = getFromCache(key);
|
|
|
+ if (feature == null) {
|
|
|
+ feature = JSONUtils.fromJson(emptyData, typeToken, null);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
@@ -128,25 +131,29 @@ public abstract class AbstractFeatureService<K, V> {
|
|
|
|
|
|
|
|
|
Map<K, V> cacheFeatureMap = getFromCache(keys);
|
|
|
- if (cacheFeatureMap.size() == keys.size()) {
|
|
|
- return cacheFeatureMap;
|
|
|
- }
|
|
|
-
|
|
|
- ite = keys.iterator();
|
|
|
- while (ite.hasNext()) {
|
|
|
- cacheFeatureMap.containsKey(ite.next());
|
|
|
- ite.remove();
|
|
|
+ for (int i = 0; i < keys.size(); i++) {
|
|
|
+ if (cacheFeatureMap.get(keys.get(i)) == null) {
|
|
|
+ cacheFeatureMap.put(keys.get(i), JSONUtils.fromJson(emptyData, typeToken, null));
|
|
|
+ }
|
|
|
}
|
|
|
+ return cacheFeatureMap;
|
|
|
|
|
|
- Map<K, V> sourceFeatureMap = null;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- return CommonCollectionUtils.merge(cacheFeatureMap, sourceFeatureMap);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private Map<K, V> getFromCache(List<K> keys) {
|
|
@@ -231,7 +238,7 @@ public abstract class AbstractFeatureService<K, V> {
|
|
|
try {
|
|
|
return cache.getAll(videoIds);
|
|
|
} catch (Exception e) {
|
|
|
- log.error("");
|
|
|
+ log.error("get all failed {}", JSONUtils.toJson(videoIds), e);
|
|
|
}
|
|
|
return Collections.emptyMap();
|
|
|
}
|