diff options
author | Hongkai Liu <hongkai.liu@ericsson.com> | 2017-01-24 14:08:25 -0500 |
---|---|---|
committer | Hongkai Liu <hongkai.liu@ericsson.com> | 2017-01-30 22:36:59 -0400 |
commit | a33663fd4edce3585ff20c842f297e60e0e9af85 (patch) | |
tree | 6e7b91ff89d3c887871544336ab51c36ed8b3651 /org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java | |
parent | 62411453f1e821152cad7c8847728cc162a0b561 (diff) | |
download | jgit-a33663fd4edce3585ff20c842f297e60e0e9af85.tar.gz jgit-a33663fd4edce3585ff20c842f297e60e0e9af85.zip |
Detect stale-file-handle error in causal chain
Cover the case where the exception is wrapped up as a
cause, e.g., PackIndex#open(File).
Change-Id: I0df5b1e9c2ff886bdd84dee3658b6a50866699d1
Signed-off-by: Hongkai Liu <hongkai.liu@ericsson.com>
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java index c04dfa9610..1f1d15b324 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java @@ -548,6 +548,26 @@ public class FileUtils { } /** + * Determine if a throwable or a cause in its causal chain is a Stale NFS + * File Handle + * + * @param throwable + * @return a boolean true if the throwable or a cause in its causal chain is + * a Stale NFS File Handle + * @since 4.7 + */ + public static boolean isStaleFileHandleInCausalChain(Throwable throwable) { + while (throwable != null) { + if (throwable instanceof IOException + && isStaleFileHandle((IOException) throwable)) { + return true; + } + throwable = throwable.getCause(); + } + return false; + } + + /** * @param file * @return {@code true} if the passed file is a symbolic link */ |