diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java index d4056871b..d02888a87 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java @@ -56,7 +56,6 @@ import java.util.HashSet; import java.util.Locale; import java.util.Objects; import java.util.Set; -import java.util.concurrent.locks.ReentrantLock; import org.eclipse.jgit.annotations.Nullable; import org.eclipse.jgit.api.errors.JGitInternalException; @@ -125,7 +124,7 @@ public class FileRepository extends Repository { private final RefDatabase refs; private final ObjectDirectory objectDatabase; - private final ReentrantLock snapshotLock = new ReentrantLock(); + private final Object snapshotLock = new Object(); // protected by snapshotLock private FileSnapshot snapshot; @@ -553,8 +552,7 @@ public class FileRepository extends Repository { } File indexFile = getIndexFile(); - snapshotLock.lock(); - try { + synchronized (snapshotLock) { if (snapshot == null) { snapshot = FileSnapshot.save(indexFile); return; @@ -562,8 +560,6 @@ public class FileRepository extends Repository { if (!snapshot.isModified(indexFile)) { return; } - } finally { - snapshotLock.unlock(); } notifyIndexChanged(false); } @@ -571,11 +567,8 @@ public class FileRepository extends Repository { /** {@inheritDoc} */ @Override public void notifyIndexChanged(boolean internal) { - snapshotLock.lock(); - try { + synchronized (snapshotLock) { snapshot = FileSnapshot.save(getIndexFile()); - } finally { - snapshotLock.unlock(); } fireEvent(new IndexChangedEvent(internal)); }