@ -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 ) ) ;
}