Skip to content

Commit fffbd2b

Browse files
Ahlforsxcaspar
Ahlfors
authored andcommitted
fix: when getting the lock by blocking methods, such as waiting in the blocking queue, lock() must be put outside the try block.
1 parent adb66db commit fffbd2b

File tree

1 file changed

+4
-4
lines changed
  • chaosblade-exec-plugin/chaosblade-exec-plugin-jvm/src/main/java/com/alibaba/chaosblade/exec/plugin/jvm/script/base/cache

1 file changed

+4
-4
lines changed

chaosblade-exec-plugin/chaosblade-exec-plugin-jvm/src/main/java/com/alibaba/chaosblade/exec/plugin/jvm/script/base/cache/AbstractScriptCache.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ public AbstractScriptCache(int cacheSize) {
4040
public void put(K k, V v) {
4141
ObjectsUtil.requireNonNull(v);
4242
Lock lock = readWriteLock.writeLock();
43+
lock.lock();
4344
try {
44-
lock.lock();
4545
cacheMap.put(k, v);
4646
} finally {
4747
lock.unlock();
@@ -51,8 +51,8 @@ public void put(K k, V v) {
5151
@Override
5252
public V get(K k) {
5353
Lock lock = readWriteLock.readLock();
54+
lock.lock();
5455
try {
55-
lock.lock();
5656
return cacheMap.get(k);
5757
} finally {
5858
lock.unlock();
@@ -63,8 +63,8 @@ public V get(K k) {
6363
public boolean evict(K k) {
6464
if (cacheMap.containsKey(k)) {
6565
Lock lock = readWriteLock.writeLock();
66+
lock.lock();
6667
try {
67-
lock.lock();
6868
cacheMap.remove(k);
6969
return true;
7070
} finally {
@@ -77,8 +77,8 @@ public boolean evict(K k) {
7777
@Override
7878
public void clean() {
7979
Lock lock = readWriteLock.writeLock();
80+
lock.lock();
8081
try {
81-
lock.lock();
8282
cacheMap.clear();
8383
} finally {
8484
lock.unlock();

0 commit comments

Comments
 (0)