This is an automated email from the ASF dual-hosted git repository.
fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git
The following commit(s) were added to refs/heads/master by this push:
new 99341ca Simplify logic by using computeIfAbsent instead of putIfAbsent
99341ca is described below
commit 99341ca8bc81f3f76427628731ba4407234d27b5
Author: Felix Schumacher <[email protected]>
AuthorDate: Sun Nov 8 17:38:45 2020 +0100
Simplify logic by using computeIfAbsent instead of putIfAbsent
Spotbugs can't determine correctly, that the lock will be released.
We help it, by allowing reducing the allowed variables for locks to
one.
---
.../java/org/apache/jmeter/functions/StringToFile.java | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
diff --git
a/src/functions/src/main/java/org/apache/jmeter/functions/StringToFile.java
b/src/functions/src/main/java/org/apache/jmeter/functions/StringToFile.java
index 9116a3c..3cb0879 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/StringToFile.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/StringToFile.java
@@ -101,14 +101,9 @@ public class StringToFile extends AbstractFunction {
return false;
}
log.debug("Writing {} to file {} with charset {} and append {}",
content, fileName, charset, append);
- Lock localLock = new ReentrantLock();
- Lock lock = lockMap.putIfAbsent(fileName, localLock);
+ Lock lock = lockMap.computeIfAbsent(fileName, key -> new
ReentrantLock());
try {
- if (lock == null) {
- localLock.lock();
- } else {
- lock.lock();
- }
+ lock.lock();
File file = new File(fileName);
File fileParent = file.getParentFile();
if (fileParent == null || (fileParent.exists() &&
fileParent.isDirectory() && fileParent.canWrite())) {
@@ -118,11 +113,7 @@ public class StringToFile extends AbstractFunction {
return false;
}
} finally {
- if (lock == null) {
- localLock.unlock();
- } else {
- lock.unlock();
- }
+ lock.unlock();
}
return true;
}