diff --git a/redisson/src/main/java/org/redisson/jcache/JCache.java b/redisson/src/main/java/org/redisson/jcache/JCache.java index 1a64c9fb8a1..4fed8f4d836 100644 --- a/redisson/src/main/java/org/redisson/jcache/JCache.java +++ b/redisson/src/main/java/org/redisson/jcache/JCache.java @@ -97,6 +97,8 @@ public class JCache extends RedissonObject implements Cache { private static final RedisCommand EVAL_PUT_IF_ABSENT = new RedisCommand("EVAL", new BooleanReplayConvertor(), 7, ValueType.MAP); private static final RedisCommand EVAL_REMOVE_KEY_VALUE = new RedisCommand("EVAL", new BooleanReplayConvertor(), 8, ValueType.MAP); private static final RedisCommand EVAL_CONTAINS_KEY = new RedisCommand("EVAL", new BooleanReplayConvertor(), 6, ValueType.MAP_KEY); + + private static final long LEASE_TIME = 1500; private final JCacheManager cacheManager; private final JCacheConfiguration config; @@ -313,7 +315,7 @@ private Long getAccessTimeout() { V load(K key) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { V value = getValueLocked(key); if (value == null) { @@ -702,7 +704,7 @@ public void run() { try { if (!containsKey(key) || replaceExistingValues) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { if (!containsKey(key)|| replaceExistingValues) { V value; @@ -742,7 +744,7 @@ private RLock getLock(K key) { private RLock getLockedLock(K key) { String lockName = getLockName(key); RLock lock = redisson.getLock(lockName); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); return lock; } @@ -760,7 +762,7 @@ public void put(K key, V value) { long startTime = currentNanoTime(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { List result = getAndPutValueLocked(key, value); if (result.isEmpty()) { @@ -970,7 +972,7 @@ public V getAndPut(K key, V value) { long startTime = currentNanoTime(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { List result = getAndPutValueLocked(key, value); if (result.isEmpty()) { @@ -1068,7 +1070,7 @@ public void putAll(Map map) { long startTime = currentNanoTime(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); List result = getAndPutValue(key, value); if (result.isEmpty()) { @@ -1172,7 +1174,7 @@ public boolean putIfAbsent(K key, V value) { long startTime = currentNanoTime(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { boolean result = putIfAbsentValueLocked(key, value); if (result) { @@ -1254,7 +1256,7 @@ public boolean remove(K key) { long startTime = System.currentTimeMillis(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { V oldValue = getValue(key); boolean result = removeValue(key); @@ -1395,7 +1397,7 @@ public boolean remove(K key, V value) { boolean result; if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { result = removeValueLocked(key, value); if (result) { @@ -1487,7 +1489,7 @@ public V getAndRemove(K key) { long startTime = currentNanoTime(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { Object value = getAndRemoveValue(key); if (value != null) { @@ -1690,7 +1692,7 @@ public boolean replace(K key, V oldValue, V newValue) { long startTime = currentNanoTime(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { long result = replaceValueLocked(key, oldValue, newValue); if (result == 1) { @@ -1934,7 +1936,7 @@ public boolean replace(K key, V value) { long startTime = currentNanoTime(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { boolean result = replaceValueLocked(key, value); if (result) { @@ -1988,7 +1990,7 @@ public V getAndReplace(K key, V value) { long startTime = currentNanoTime(); if (config.isWriteThrough()) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); try { V result = getAndReplaceValueLocked(key, value); if (result != null) { @@ -2046,7 +2048,7 @@ public void removeAll(Set keys) { if (config.isWriteThrough()) { for (K key : keys) { RLock lock = getLock(key); - lock.lock(5, TimeUnit.SECONDS); + lock.lock(LEASE_TIME, TimeUnit.MILLISECONDS); V result = getAndRemoveValue(key); if (result != null) { deletedKeys.put(key, result);