Add missing checks against null.

The program can dereference a null pointer because it does not check the return value of a function that might return
null.
This commit is contained in:
Daniel Gredler
2018-08-30 15:24:41 -04:00
parent 418fda3c8f
commit d4050793b4
2 changed files with 19 additions and 10 deletions
@@ -30,8 +30,11 @@ public class GarbageCollector
}
File folder = file.getParentFile();
if (folder.list().length == 0) {
FileUtil.deleteHarder(folder);
if (folder != null) {
String[] children = folder.list();
if (children != null && children.length == 0) {
FileUtil.deleteHarder(folder);
}
}
}
});
@@ -187,14 +187,20 @@ public class FileUtil
*/
public static void walkTree (File root, Visitor visitor)
{
Deque<File> stack = new ArrayDeque<>(Arrays.asList(root.listFiles()));
while (!stack.isEmpty()) {
File currentFile = stack.pop();
if (currentFile.exists()) {
visitor.visit(currentFile);
if (currentFile.isDirectory()) {
for (File file: currentFile.listFiles()) {
stack.push(file);
File[] children = root.listFiles();
if (children != null) {
Deque<File> stack = new ArrayDeque<>(Arrays.asList(children));
while (!stack.isEmpty()) {
File currentFile = stack.pop();
if (currentFile.exists()) {
visitor.visit(currentFile);
if (currentFile.isDirectory()) {
File[] currentChildren = currentFile.listFiles();
if (currentChildren != null) {
for (File file : currentChildren) {
stack.push(file);
}
}
}
}
}