You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/12/22 01:34:49 UTC
(commons-io) 01/02: More tests and NPE-proofing
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git
commit 7d44bb77c7a541f51b8c784c006b36f8d6b206e6
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Dec 21 18:06:16 2023 -0500
More tests and NPE-proofing
---
src/main/java/org/apache/commons/io/file/PathUtils.java | 2 +-
src/test/java/org/apache/commons/io/file/PathUtilsTest.java | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/commons/io/file/PathUtils.java b/src/main/java/org/apache/commons/io/file/PathUtils.java
index 9f0dddb1..29af5800 100644
--- a/src/main/java/org/apache/commons/io/file/PathUtils.java
+++ b/src/main/java/org/apache/commons/io/file/PathUtils.java
@@ -878,7 +878,7 @@ public final class PathUtils {
* @since 2.16.0
*/
public static <R> R getFileName(final Path path, Function<Path, R> function) {
- final Path fileName = path.getFileName();
+ final Path fileName = path != null ? path.getFileName() : null;
return fileName != null ? function.apply(fileName) : null;
}
diff --git a/src/test/java/org/apache/commons/io/file/PathUtilsTest.java b/src/test/java/org/apache/commons/io/file/PathUtilsTest.java
index d46f5185..c27c39de 100644
--- a/src/test/java/org/apache/commons/io/file/PathUtilsTest.java
+++ b/src/test/java/org/apache/commons/io/file/PathUtilsTest.java
@@ -246,6 +246,17 @@ public class PathUtilsTest extends AbstractTempDirTest {
assertEquals(symlinkedDir, PathUtils.createParentDirectories(symlinkedDir.resolve("child")));
}
+ @Test
+ public void testGetFileName() {
+ assertNull(PathUtils.getFileName(null, null));
+ assertNull(PathUtils.getFileName(null, Path::toString));
+ assertNull(PathUtils.getFileName(Paths.get("/"), Path::toString));
+ assertNull(PathUtils.getFileName(Paths.get("/"), Path::toString));
+ assertEquals("", PathUtils.getFileName(Paths.get(""), Path::toString));
+ assertEquals("a", PathUtils.getFileName(Paths.get("a"), Path::toString));
+ assertEquals("a", PathUtils.getFileName(Paths.get("p", "a"), Path::toString));
+ }
+
@Test
public void testGetFileNameString() {
assertNull(PathUtils.getFileNameString(Paths.get("/")));