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();
if (lck.renameTo(ref))
if (lck.renameTo(ref)) {
haveLck = false;
return true;
if (!ref.exists() || deleteRef())
if (renameLock())
}
if (!ref.exists() || deleteRef()) {
if (renameLock()) {
haveLck = false;
return true;
}
}
unlock();
return false;
}

Loading…
Cancel
Save