diff --git a/src/main/java/neatlogic/framework/dao/cache/NeatLogicConcurrentSafeCache.java b/src/main/java/neatlogic/framework/dao/cache/NeatLogicConcurrentSafeCache.java index 15fbed660abe1d5f41b0d5b207057c6e59c86f2f..eed2e05690fffbabfa43eb6bd5944b463d56c976 100644 --- a/src/main/java/neatlogic/framework/dao/cache/NeatLogicConcurrentSafeCache.java +++ b/src/main/java/neatlogic/framework/dao/cache/NeatLogicConcurrentSafeCache.java @@ -203,6 +203,12 @@ public class NeatLogicConcurrentSafeCache implements Cache { obj = cachedElement.getObjectValue(); ehcache.remove(key); } + String lockKey = generateLockKey(getId(), key); + ReentrantLock lock = LOCAL_LOCK_MAP.get(lockKey); + if (lock != null && lock.isLocked() && lock.isHeldByCurrentThread()) { + LOCAL_LOCK_MAP.remove(lockKey, lock); + lock.unlock(); + } return obj; } diff --git a/src/main/java/neatlogic/framework/dao/mapper/UserMapper.xml b/src/main/java/neatlogic/framework/dao/mapper/UserMapper.xml index 3b67d03d6e947a84b623bb555514f02dd8120547..47745c31b079a18276150f66f127cae24f9cd7d3 100644 --- a/src/main/java/neatlogic/framework/dao/mapper/UserMapper.xml +++ b/src/main/java/neatlogic/framework/dao/mapper/UserMapper.xml @@ -454,7 +454,7 @@ along with this program. If not, see .--> WHERE `user_uuid` = #{userUuid} - SELECT `auth_group` AS authGroup, `auth`