diff --git a/pinot-plugins/pinot-file-system/pinot-hdfs/src/main/java/org/apache/pinot/plugin/filesystem/HadoopPinotFS.java b/pinot-plugins/pinot-file-system/pinot-hdfs/src/main/java/org/apache/pinot/plugin/filesystem/HadoopPinotFS.java index be2aa28ec618..6da773e62fbe 100644 --- a/pinot-plugins/pinot-file-system/pinot-hdfs/src/main/java/org/apache/pinot/plugin/filesystem/HadoopPinotFS.java +++ b/pinot-plugins/pinot-file-system/pinot-hdfs/src/main/java/org/apache/pinot/plugin/filesystem/HadoopPinotFS.java @@ -239,7 +239,11 @@ public void copyFromLocalDir(File srcFile, URI dstUri) @Override public boolean isDirectory(URI uri) throws IOException { - return _hadoopFS.getFileStatus(new Path(uri)).isDirectory(); + try { + return _hadoopFS.getFileStatus(new Path(uri)).isDirectory(); + } catch (FileNotFoundException e) { + return false; + } } @Override diff --git a/pinot-plugins/pinot-file-system/pinot-hdfs/src/test/java/org/apache/pinot/plugin/filesystem/HadoopPinotFSTest.java b/pinot-plugins/pinot-file-system/pinot-hdfs/src/test/java/org/apache/pinot/plugin/filesystem/HadoopPinotFSTest.java index 9c5f7d9d576e..b6638a1b991d 100644 --- a/pinot-plugins/pinot-file-system/pinot-hdfs/src/test/java/org/apache/pinot/plugin/filesystem/HadoopPinotFSTest.java +++ b/pinot-plugins/pinot-file-system/pinot-hdfs/src/test/java/org/apache/pinot/plugin/filesystem/HadoopPinotFSTest.java @@ -151,6 +151,17 @@ public void testListFilesWithMetadata() } } + @Test + public void testIsDirectoryReturnsFalseForNonExistentPath() + throws IOException { + URI missingPath = URI.create(TMP_DIR + "/testIsDirectoryReturnsFalseForNonExistentPath/missing"); + try (HadoopPinotFS hadoopFS = new HadoopPinotFS()) { + hadoopFS.init(new PinotConfiguration()); + + Assert.assertFalse(hadoopFS.isDirectory(missingPath)); + } + } + @Test public void testDeleteBatchWithEmptyList() throws IOException {