Browse Source

fixed versioned caffeine cache

pull/10977/head
YevhenBondarenko 2 years ago
parent
commit
77a420b6d6
  1. 11
      common/cache/src/main/java/org/thingsboard/server/cache/VersionedCaffeineTbCache.java
  2. 7
      common/data/src/main/java/org/thingsboard/server/common/data/util/TbPair.java

11
common/cache/src/main/java/org/thingsboard/server/cache/VersionedCaffeineTbCache.java

@ -35,7 +35,11 @@ public abstract class VersionedCaffeineTbCache<K extends Serializable, V extends
@Override
public TbCacheValueWrapper<V> get(K key) {
return SimpleTbCacheValueWrapper.wrap(doGet(key).getSecond());
TbPair<Long, V> versionValuePair = doGet(key);
if (versionValuePair != null) {
return SimpleTbCacheValueWrapper.wrap(versionValuePair.getSecond());
}
return null;
}
@Override
@ -52,8 +56,7 @@ public abstract class VersionedCaffeineTbCache<K extends Serializable, V extends
lock.lock();
try {
TbPair<Long, V> versionValuePair = doGet(key);
Long currentVersion = versionValuePair.getFirst();
if (currentVersion == null || version > currentVersion) {
if (versionValuePair == null || version > versionValuePair.getFirst()) {
cacheManager.getCache(cacheName).put(key, TbPair.of(version, value));
}
} finally {
@ -63,7 +66,7 @@ public abstract class VersionedCaffeineTbCache<K extends Serializable, V extends
private TbPair<Long, V> doGet(K key) {
Cache.ValueWrapper source = cacheManager.getCache(cacheName).get(key);
return source == null ? TbPair.emptyPair() : (TbPair<Long, V>) source.get();
return source == null ? null : (TbPair<Long, V>) source.get();
}
@Override

7
common/data/src/main/java/org/thingsboard/server/common/data/util/TbPair.java

@ -21,17 +21,10 @@ import lombok.Data;
@Data
@AllArgsConstructor
public class TbPair<S, T> {
public static final TbPair EMPTY = new TbPair<>(null, null);
private S first;
private T second;
public static <S, T> TbPair<S, T> of(S first, T second) {
return new TbPair<>(first, second);
}
@SuppressWarnings("unchecked")
public static <S, T> TbPair<S, T> emptyPair() {
return (TbPair<S, T>) EMPTY;
}
}

Loading…
Cancel
Save