Browse Source

When renaming the lock file succeeds the lock isn't held anymore

This wrong book-keeping caused IOExceptions to be thrown because
LockFile.unlock() erroneously tried to delete the non-existing lock
file. These IOExeptions were hidden since they were silently caught. 

Change-Id: If42b6192d92c5a2d8f2bf904b16567ef08c32e89
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-3.0
Matthias Sohn 12 years ago
parent
commit
d059f85c0b
  1. 11
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java

11
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java

@ -437,11 +437,16 @@ public class LockFile {
} }
saveStatInformation(); saveStatInformation();
if (lck.renameTo(ref)) if (lck.renameTo(ref)) {
haveLck = false;
return true; return true;
if (!ref.exists() || deleteRef()) }
if (renameLock()) if (!ref.exists() || deleteRef()) {
if (renameLock()) {
haveLck = false;
return true; return true;
}
}
unlock(); unlock();
return false; return false;
} }

Loading…
Cancel
Save