Browse Source

[spotbugs] DfsReftableDatabase: extract lock to local variable

This fixes UL_UNRELEASED_LOCK_EXCEPTION_PATH raised by spotbugs in
#DfsReftableDatabase and #clearCache.

Change-Id: Ifd3189288d2a8e64139c02cd105eb335fa2f68cf
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
tags/v5.11.0.202102031030-m2
Matthias Sohn 3 years ago
parent
commit
39cbc574d1

+ 7
- 4
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java View File

@@ -17,6 +17,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

import org.eclipse.jgit.annotations.Nullable;
@@ -62,11 +63,12 @@ public class DfsReftableDatabase extends DfsRefDatabase {
reftableDatabase = new ReftableDatabase() {
@Override
public MergedReftable openMergedReftable() throws IOException {
DfsReftableDatabase.this.getLock().lock();
Lock l = DfsReftableDatabase.this.getLock();
l.lock();
try {
return new MergedReftable(stack().readers());
} finally {
DfsReftableDatabase.this.getLock().unlock();
l.unlock();
}
}
};
@@ -207,7 +209,8 @@ public class DfsReftableDatabase extends DfsRefDatabase {

@Override
void clearCache() {
getLock().lock();
ReentrantLock l = getLock();
l.lock();
try {
if (ctx != null) {
ctx.close();
@@ -219,7 +222,7 @@ public class DfsReftableDatabase extends DfsRefDatabase {
stack = null;
}
} finally {
getLock().unlock();
l.unlock();
}
}


Loading…
Cancel
Save