Browse Source

Merge "Add public isStaleFileHandle() API, improve detection."

tags/v4.1.0.201509280440-r
Matthias Sohn 8 years ago
parent
commit
cc50ec2d87

+ 1
- 4
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java View File

@@ -114,8 +114,6 @@ public class ObjectDirectory extends FileObjectDatabase {
/** Maximum number of candidates offered as resolutions of abbreviation. */
private static final int RESOLVE_ABBREV_LIMIT = 256;

private static final String STALE_FILE_HANDLE_MSG = "stale file handle"; //$NON-NLS-1$

private final Config config;

private final File objects;
@@ -565,8 +563,7 @@ public class ObjectDirectory extends FileObjectDatabase {
} else if (e instanceof FileNotFoundException) {
warnTmpl = JGitText.get().packWasDeleted;
removePack(p);
} else if (e.getMessage() != null
&& e.getMessage().toLowerCase().contains(STALE_FILE_HANDLE_MSG)) {
} else if (FileUtils.isStaleFileHandle(e)) {
warnTmpl = JGitText.get().packHandleIsStale;
removePack(p);
}

+ 11
- 0
org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java View File

@@ -514,4 +514,15 @@ public class FileUtils {
}
return builder.toString();
}

/**
* Determine if an IOException is a Stale NFS File Handle
*
* @param ioe
* @return a boolean true if the IOException is a Stale NFS FIle Handle
*/
public static boolean isStaleFileHandle(IOException ioe) {
String msg = ioe.getMessage();
return msg != null && msg.toLowerCase().matches("stale .*file .*handle");
}
}

Loading…
Cancel
Save