Browse Source

DfsBlockCache#creditSpace: release clockLock in finally block

Enclose the call to getStat in a `try`, and release the previously
acquired lock in the `finally`. This prevents that the lock is left
unreleased in the case of an exception being raised in getStat.

Change-Id: I17b4cd134dae887e23a1165253be0ac2d4fd452c
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
stable-4.10
David Pursehouse 7 years ago
parent
commit
c89a11213e
  1. 3
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsBlockCache.java

3
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsBlockCache.java

@ -418,9 +418,12 @@ public final class DfsBlockCache {
private void creditSpace(int credit, DfsStreamKey key) { private void creditSpace(int credit, DfsStreamKey key) {
clockLock.lock(); clockLock.lock();
try {
getStat(liveBytes, key).addAndGet(-credit); getStat(liveBytes, key).addAndGet(-credit);
} finally {
clockLock.unlock(); clockLock.unlock();
} }
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void addToClock(Ref ref, int credit) { private void addToClock(Ref ref, int credit) {

Loading…
Cancel
Save