diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java index 7f956b77df52..b9649f09bb15 100644 --- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java +++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java @@ -1454,7 +1454,7 @@ private static OzoneKey toOzoneKey(OzoneFileStatusLight status) { keyInfo.getModificationTime(), keyInfo.getReplicationConfig(), metadata, - keyInfo.isFile(), + status.isFile(), keyInfo.getOwnerName(), Collections.emptyMap()); } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java index df4913789f1d..9d129435baff 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTest.java @@ -2567,5 +2567,4 @@ private void deleteFiles(Path base, List fileNames) throws IOException { fs.delete(new Path(base, key)); } } - } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTestWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTestWithFSO.java index 55c4ccc47555..d2537dcde5db 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTestWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractRootedOzoneFileSystemTestWithFSO.java @@ -226,5 +226,4 @@ void testLeaseRecoverable() throws Exception { TestLeaseRecovery.closeIgnoringKeyNotFound(stream); } } - } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java index 4e4944db871d..fc51c7f76095 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java @@ -20,6 +20,8 @@ import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_CLIENT_LIST_CACHE_SIZE; import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_FS_ITERATE_BATCH_SIZE; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.InputStream; import java.nio.charset.StandardCharsets; @@ -40,6 +42,7 @@ import org.apache.hadoop.ozone.client.OzoneClientFactory; import org.apache.hadoop.ozone.client.OzoneKey; import org.apache.hadoop.ozone.client.OzoneVolume; +import org.apache.hadoop.ozone.client.io.OzoneOutputStream; import org.apache.hadoop.ozone.om.helpers.BucketLayout; import org.apache.ozone.test.NonHATests; import org.junit.jupiter.api.AfterAll; @@ -502,6 +505,26 @@ public void testShallowListKeys() throws Exception { checkKeyShallowList(keyPrefix, startKey, expectedKeys, fsoOzoneBucket); } + @Test + void testIsFileFalseForDir() throws Exception { + byte[] data = "key-data".getBytes(StandardCharsets.UTF_8); + try (OzoneOutputStream out = emptyFsoOzoneBucket.createKey("dir1/key1", data.length)) { + out.write(data); + } + + Iterator keyIterator = emptyFsoOzoneBucket.listKeys(""); + + assertTrue(keyIterator.hasNext(), "Expected dir1, key1 in the bucket"); + + OzoneKey ozoneKey = keyIterator.next(); + assertEquals("dir1/", ozoneKey.getName()); + assertFalse(ozoneKey.isFile(), "Expected isFile to be false for directory key"); + + ozoneKey = keyIterator.next(); + assertEquals("dir1/key1", ozoneKey.getName()); + assertTrue(ozoneKey.isFile(), "Expected isFile to be true for key"); + } + /** * Verify listKeys at different levels. *