aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Milanesio <luca.milanesio@gmail.com>2025-07-04 23:51:19 +0100
committerLuca Milanesio <luca.milanesio@gmail.com>2025-07-04 23:51:19 +0100
commit461c6da450740f0195d13a5ed60c49a37890df08 (patch)
tree6f916cd4fa6d3c179a12d6c07ff4b38432282cf2
parent426a6c70c38037835df6f25e01dfdf18971292ad (diff)
parent23029d8aede6b5b9fefb408642fc23798d527067 (diff)
downloadjgit-461c6da450740f0195d13a5ed60c49a37890df08.tar.gz
jgit-461c6da450740f0195d13a5ed60c49a37890df08.zip
Merge branch 'stable-7.3'
* stable-7.3: Lock reftable auto-refresh to ensure consistency Change-Id: I43df38f98f0b03dec2e64d4c52257ddc3affd64f
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableDatabase.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableDatabase.java
index 559d5a4339..64f8c9b0e3 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableDatabase.java
@@ -264,8 +264,14 @@ public class FileReftableDatabase extends RefDatabase {
public void refresh() {
try {
if (!reftableStack.isUpToDate()) {
- reftableDatabase.clearCache();
- reftableStack.reload();
+ ReentrantLock lock = getLock();
+ lock.lock();
+ try {
+ reftableDatabase.clearCache();
+ reftableStack.reload();
+ } finally {
+ lock.unlock();
+ }
}
} catch (IOException e) {
throw new UncheckedIOException(e);