This is an automated email from the ASF dual-hosted git repository.

chungen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 7c957cce1c HDDS-11954. List keys command gets wrong info from 
BasicOmKeyInfo (#8401)
7c957cce1c is described below

commit 7c957cce1c6389693b2c275caed28677381ccdf5
Author: Anastasia Kostryukova <[email protected]>
AuthorDate: Tue May 13 17:33:12 2025 +0300

    HDDS-11954. List keys command gets wrong info from BasicOmKeyInfo (#8401)
---
 .../apache/hadoop/ozone/client/OzoneBucket.java    |  2 +-
 .../ozone/AbstractRootedOzoneFileSystemTest.java   |  1 -
 .../AbstractRootedOzoneFileSystemTestWithFSO.java  |  1 -
 .../hadoop/ozone/om/TestListKeysWithFSO.java       | 23 ++++++++++++++++++++++
 4 files changed, 24 insertions(+), 3 deletions(-)

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 7f956b77df..b9649f09bb 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 df4913789f..9d129435ba 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<String> 
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 55c4ccc475..d2537dcde5 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 4e4944db87..fc51c7f760 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<? extends OzoneKey> 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.
    *


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to