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:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user