diff --git a/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java b/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java index 33d43ed96c..7b5676984c 100644 --- a/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java +++ b/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java @@ -681,6 +681,11 @@ private static class DefaultLibraryModels implements LibraryModels { .put(methodRef("java.util.ArrayDeque", "offer(E)"), 0) .put(methodRef("java.util.ArrayDeque", "push(E)"), 0) .put(methodRef("java.util.ArrayDeque", "toArray(T[])"), 0) + .put( + methodRef( + "java.nio.file.Files", + "isDirectory(java.nio.file.Path,java.nio.file.LinkOption...)"), + 0) .build(); private static final ImmutableSetMultimap NULL_IMPLIES_TRUE_PARAMETERS = diff --git a/nullaway/src/test/java/com/uber/nullaway/NullAwayFrameworkTests.java b/nullaway/src/test/java/com/uber/nullaway/NullAwayFrameworkTests.java index ed62eccee9..7a99a92db8 100644 --- a/nullaway/src/test/java/com/uber/nullaway/NullAwayFrameworkTests.java +++ b/nullaway/src/test/java/com/uber/nullaway/NullAwayFrameworkTests.java @@ -899,4 +899,22 @@ public void apacheValidateStringValidIndex() { "}") .doTest(); } + + @Test + public void filesIsDirectory() { + defaultCompilationHelper + .addSourceLines( + "Foo.java", + "package com.uber;", + "import java.nio.file.Files;", + "import java.nio.file.Path;", + "import org.jetbrains.annotations.Nullable;", + "public class Foo {", + " public boolean bar(@Nullable Path p) {", + " // BUG: Diagnostic contains: passing @Nullable parameter 'p' where @NonNull is required", + " return Files.isDirectory(p);", + " }", + "}") + .doTest(); + } }