1. suggest javadoc comment for FileUtil.listFiles() to read:
+ * A wrapper for
. This java.io API returns null
+ * when dir is not directory or for any I/O error. Instead of having to
+ * null check everywhere File#listFiles() is used, we will add this utility
+ * api to get around this problem, for the majority of cases where we prefer
+ * an IOException to be thrown.
2. Not sure about the change to RunJar.main(). Isn't jar extraction usually pretty forgiving? It is currently written to skip any directory it can't read. Can you please give an argument for why that's wrong?
3. In the last line of testlistFiles(), to assure that the referenced directory can't possibly exist, why not use the same name as the directory you just deleted in the previous line? Maybe after asserting:
Assert.assertTrue("Failed to delete test dir", !newDir.exists());