Fix IOException when LockToken#close fails
This happened if the LockTokens hard link was already deleted earlier.
Bug: 531759
Change-Id: Idc84bd695fac1a763b3cbb797c9c4c636a16e329
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
index 6b537a4..8d4e5e5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
@@ -841,13 +841,18 @@
@Override
public void close() {
- if (link.isPresent()) {
- try {
- Files.delete(link.get());
- } catch (IOException e) {
- LOG.error(MessageFormat.format(JGitText.get().closeLockTokenFailed,
- this), e);
- }
+ if (!link.isPresent()) {
+ return;
+ }
+ Path p = link.get();
+ if (!Files.exists(p)) {
+ return;
+ }
+ try {
+ Files.delete(p);
+ } catch (IOException e) {
+ LOG.error(MessageFormat
+ .format(JGitText.get().closeLockTokenFailed, this), e);
}
}