From cddf54a1ec2172abdee7aea34ccc4a2be7ff99ab Mon Sep 17 00:00:00 2001 From: "Zhiguo.Chen" Date: Sun, 23 Jun 2024 23:33:47 +0800 Subject: [PATCH] Fix logic issue --- .../cache/ihc/AbstractCommonCache.java | 3 ++- .../cache/ihc/AbstractLoadingCache.java | 3 ++- .../cache/ihc/AbstractSynchronousCache.java | 20 +++++++++++++++---- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractCommonCache.java b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractCommonCache.java index 5f27e25..cdb3463 100644 --- a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractCommonCache.java +++ b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractCommonCache.java @@ -227,7 +227,8 @@ private Cache getCache() { */ public void whenRemove(K key, V value, RemovalCause removalCause) { if (log.isDebugEnabled()) { - log.debug("[RemoveCallback]Remove cache key:{}, value:{}, cause:{}, cacheName={}", key, value, removalCause, getName()); + log.debug("[RemoveCallback]Remove cache key:{}, value:{}, cause:{}, cacheName={}", + key, value, removalCause, getName()); } } } diff --git a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractLoadingCache.java b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractLoadingCache.java index d530a47..e414797 100644 --- a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractLoadingCache.java +++ b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractLoadingCache.java @@ -296,7 +296,8 @@ private LoadingCache getCache() { */ public void whenRemove(K key, V value, RemovalCause removalCause) { if (log.isDebugEnabled()) { - log.debug("[RemoveCallback]Remove cache key:{}, value:{}, cause:{}, cacheName={}", key, value, removalCause, getName()); + log.debug("[RemoveCallback]Remove cache key:{}, value:{}, cause:{}, cacheName={}", + key, value, removalCause, getName()); } } diff --git a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractSynchronousCache.java b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractSynchronousCache.java index ffa4e76..974ef99 100644 --- a/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractSynchronousCache.java +++ b/cache-ihc/src/main/java/io/meshware/cache/ihc/AbstractSynchronousCache.java @@ -53,14 +53,26 @@ public V getValueWithSyncValue(K key, Y syncValue) throws Exception { return getValue(key); } synchronized (this) { + boolean needSync = false; if (!effectiveCheck(key, syncValue)) { + needSync = true; removeValue(key); - getSyncValueLocalCache().putValue(key, syncValue); - if (log.isInfoEnabled()) { - log.info("[缓存同步]数据同步Key不一致,已更新!Cache={}, Key={}, SyncValue={}", getName(), key, syncValue); + } + V value = null; + try { + value = getValue(key); + if (needSync) { + getSyncValueLocalCache().putValue(key, syncValue); + if (log.isInfoEnabled()) { + log.info("[缓存同步]数据同步Key不一致,已更新!Cache={}, Key={}, SyncValue={}", + getName(), key, syncValue); + } } + } catch (Exception e) { + log.error("Error occurred when getValue, Cache={}, Key={}, SyncValue={}", + getName(), key, syncValue, e); } - return getValue(key); + return value; } } }