From 2474ab6663ab0ee56cad9d3de4c25872c976160f Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Sun, 23 Feb 2025 13:42:18 +0800 Subject: [PATCH 01/13] HDDS-12348. Reuse TestDataUtil.createKey method --- .../TestOzoneFSWithObjectStoreCreate.java | 20 +++---- .../hadoop/ozone/om/TestBucketOwner.java | 20 +++---- .../apache/hadoop/ozone/om/TestListKeys.java | 33 ++++------ .../hadoop/ozone/om/TestListKeysWithFSO.java | 36 ++++------- .../ozone/om/TestObjectStoreWithFSO.java | 60 ++++++++----------- .../ozone/om/TestRecursiveAclWithFSO.java | 15 +---- .../om/snapshot/TestOmSnapshotFileSystem.java | 7 +-- 7 files changed, 69 insertions(+), 122 deletions(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java index a9fba2836a85..6091dfe727ab 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java @@ -21,6 +21,7 @@ import static org.apache.hadoop.ozone.OzoneConsts.ETAG; import static org.apache.hadoop.ozone.OzoneConsts.MD5_HASH; import static org.apache.hadoop.ozone.OzoneConsts.OZONE_URI_SCHEME; +import static org.apache.hadoop.ozone.TestDataUtil.createKey; import static org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.NOT_A_FILE; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -366,9 +367,9 @@ public void testListKeysWithNotNormalizedPath() throws Exception { byte[] input = new byte[length]; Arrays.fill(input, (byte)96); - createKey(ozoneBucket, key1, 10, input); - createKey(ozoneBucket, key2, 10, input); - createKey(ozoneBucket, key3, 10, input); + createAndAssertKey(ozoneBucket, key1, 10, input); + createAndAssertKey(ozoneBucket, key2, 10, input); + createAndAssertKey(ozoneBucket, key3, 10, input); // Iterator with key name as prefix. @@ -413,16 +414,11 @@ private void checkKeyList(Iterator ozoneKeyIterator, assertEquals(keys, outputKeys); } - private void createKey(OzoneBucket ozoneBucket, String key, int length, - byte[] input) + private void createAndAssertKey(OzoneBucket ozoneBucket, String key, int length, + byte[] input) throws Exception { - - OzoneOutputStream ozoneOutputStream = - ozoneBucket.createKey(key, length); - - ozoneOutputStream.write(input); - ozoneOutputStream.write(input, 0, 10); - ozoneOutputStream.close(); + + createKey(ozoneBucket, key, new String(input)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java index 9a950aa45286..e0d06cd11b5e 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java @@ -18,6 +18,7 @@ package org.apache.hadoop.ozone.om; import static org.apache.hadoop.ozone.OzoneAcl.AclScope.DEFAULT; +import static org.apache.hadoop.ozone.TestDataUtil.createKey; import static org.apache.hadoop.ozone.security.acl.IAccessAuthorizer.ACLIdentityType.USER; import static org.apache.hadoop.ozone.security.acl.OzoneObj.StoreType.OZONE; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -92,8 +93,9 @@ public void testBucketOwner() throws Exception { .getVolume(VOLUME_NAME); OzoneBucket ozoneBucket = volume.getBucket("bucket1"); //Key Create - createKey(ozoneBucket, "key1", 10, new byte[10]); - createKey(ozoneBucket, "key2", 10, new byte[10]); + byte[] bytes = new byte[10]; + createKey(ozoneBucket, "key1", new String(bytes)); + createKey(ozoneBucket, "key2", new String(bytes)); //Key Delete ozoneBucket.deleteKey("key1"); //Bucket Delete @@ -118,7 +120,8 @@ public void testNonBucketNonVolumeOwner() throws Exception { assertThrows(Exception.class, () -> { OzoneVolume volume = client.getObjectStore().getVolume(VOLUME_NAME); OzoneBucket ozoneBucket = volume.getBucket("bucket1"); - createKey(ozoneBucket, "key3", 10, new byte[10]); + byte[] bytes = new byte[10]; + createKey(ozoneBucket, "key3", new String(bytes)); }, "Create key as non-volume and non-bucket owner should fail"); } //Key Delete - should fail @@ -174,7 +177,8 @@ public void testVolumeOwner() throws Exception { OzoneVolume volume = client.getObjectStore().getVolume(VOLUME_NAME); OzoneBucket ozoneBucket = volume.getBucket("bucket1"); //Key Create - createKey(ozoneBucket, "key2", 10, new byte[10]); + byte[] bytes = new byte[10]; + createKey(ozoneBucket, "key2",new String(bytes)); //Key Delete ozoneBucket.deleteKey("key2"); //List Keys @@ -208,12 +212,4 @@ private static void setVolumeAcl(ObjectStore store, String volumeName, .setResType(OzoneObj.ResourceType.VOLUME).setStoreType(OZONE).build(); assertTrue(store.setAcl(obj, OzoneAcl.parseAcls(aclString))); } - - private void createKey(OzoneBucket ozoneBucket, String key, int length, - byte[] input) throws Exception { - OzoneOutputStream ozoneOutputStream = ozoneBucket.createKey(key, length); - ozoneOutputStream.write(input); - ozoneOutputStream.write(input, 0, 10); - ozoneOutputStream.close(); - } } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java index 69cc07a8b2f3..d2a67b04d180 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java @@ -20,6 +20,7 @@ import static com.google.common.collect.Lists.newLinkedList; 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.apache.hadoop.ozone.TestDataUtil.createKey; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.params.provider.Arguments.of; @@ -41,7 +42,6 @@ import org.apache.hadoop.ozone.client.OzoneClientFactory; import org.apache.hadoop.ozone.client.OzoneKey; import org.apache.hadoop.ozone.client.io.OzoneInputStream; -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; @@ -147,7 +147,7 @@ private static void buildNameSpaceTree(OzoneBucket ozoneBucket) keys.add("a1/b3/e2/e21.tx"); keys.add("a1/b3/e3/e31.tx"); - createKeys(ozoneBucket, keys); + createAndAssertKeys(ozoneBucket, keys); ozoneBucket.createDirectory("a1/b4/"); } @@ -369,32 +369,21 @@ private void checkKeyShallowList(String keyPrefix, String startKey, assertEquals(keys, outputKeysList); } - private static void createKeys(OzoneBucket ozoneBucket, List keys) + private static void createAndAssertKeys(OzoneBucket ozoneBucket, List keys) throws Exception { int length = 10; byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, 10, input); - } - } - - private static void createKey(OzoneBucket ozoneBucket, String key, int length, - byte[] input) throws Exception { + createKey(ozoneBucket, key, new String(input)); - OzoneOutputStream ozoneOutputStream = - ozoneBucket.createKey(key, length); + // Read the key with given key name. + OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); + byte[] read = new byte[length]; + ozoneInputStream.read(read, 0, length); + ozoneInputStream.close(); - ozoneOutputStream.write(input); - ozoneOutputStream.write(input, 0, 10); - ozoneOutputStream.close(); - - // Read the key with given key name. - OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); - byte[] read = new byte[length]; - ozoneInputStream.read(read, 0, length); - ozoneInputStream.close(); - - assertEquals(new String(input, StandardCharsets.UTF_8), new String(read, StandardCharsets.UTF_8)); + assertEquals(new String(input, StandardCharsets.UTF_8), new String(read, StandardCharsets.UTF_8)); + } } } 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 56d4cceb1a80..8f974bb7d684 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 @@ -19,6 +19,7 @@ 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.apache.hadoop.ozone.TestDataUtil.createKey; import static org.junit.jupiter.api.Assertions.assertEquals; import java.nio.charset.StandardCharsets; @@ -548,7 +549,7 @@ private static void buildNameSpaceTree(OzoneBucket ozoneBucket) keys.add("/a1/b3/e2/e21.tx"); keys.add("/a1/b3/e3/e31.tx"); - createKeys(ozoneBucket, keys); + createAndAssertKeys(ozoneBucket, keys); } private static void buildNameSpaceTree2(OzoneBucket ozoneBucket) @@ -575,7 +576,7 @@ private static void buildNameSpaceTree2(OzoneBucket ozoneBucket) keys.add("/dir1/dir2/dir3/d11.tx"); - createKeys(ozoneBucket, keys); + createAndAssertKeys(ozoneBucket, keys); } @@ -641,33 +642,22 @@ private void checkKeyShallowList(String keyPrefix, String startKey, checkKeyList(keyPrefix, startKey, keys, fsoBucket, true); } - private static void createKeys(OzoneBucket ozoneBucket, List keys) + private static void createAndAssertKeys(OzoneBucket ozoneBucket, List keys) throws Exception { int length = 10; byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, 10, input); - } - } - - private static void createKey(OzoneBucket ozoneBucket, String key, int length, - byte[] input) throws Exception { + createKey(ozoneBucket, key, new String(input)); - OzoneOutputStream ozoneOutputStream = - ozoneBucket.createKey(key, length); + // Read the key with given key name. + OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); + byte[] read = new byte[length]; + ozoneInputStream.read(read, 0, length); + ozoneInputStream.close(); - ozoneOutputStream.write(input); - ozoneOutputStream.write(input, 0, 10); - ozoneOutputStream.close(); - - // Read the key with given key name. - OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); - byte[] read = new byte[length]; - ozoneInputStream.read(read, 0, length); - ozoneInputStream.close(); - - assertEquals(new String(input, StandardCharsets.UTF_8), - new String(read, StandardCharsets.UTF_8)); + assertEquals(new String(input, StandardCharsets.UTF_8), + new String(read, StandardCharsets.UTF_8)); + } } } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java index fc5a01d943df..871bae120453 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java @@ -22,6 +22,7 @@ import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_FS_ITERATE_BATCH_SIZE; import static org.apache.hadoop.ozone.OzoneConsts.OZONE_URI_DELIMITER; import static org.apache.hadoop.ozone.OzoneConsts.OZONE_URI_SCHEME; +import static org.apache.hadoop.ozone.TestDataUtil.createKey; import static org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.KEY_ALREADY_EXISTS; import static org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.KEY_NOT_FOUND; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -397,7 +398,7 @@ public void testListKeysAtDifferentLevels() throws Exception { byte[] input = new byte[length]; Arrays.fill(input, (byte)96); - createKeys(ozoneBucket, keys); + createAndAssertKeys(ozoneBucket, keys); // Root level listing keys Iterator ozoneKeyIterator = @@ -562,48 +563,37 @@ private void checkKeyList(Iterator ozoneKeyIterator, assertEquals(keys, outputKeys); } - private void createKeys(OzoneBucket ozoneBucket, List keys) + private void createAndAssertKeys(OzoneBucket ozoneBucket, List keys) throws Exception { int length = 10; byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, 10, input); + createKey(ozoneBucket, key, new String(input)); + + // Read the key with given key name. + OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); + byte[] read = new byte[length]; + ozoneInputStream.read(read, 0, length); + ozoneInputStream.close(); + + String inputString = new String(input, StandardCharsets.UTF_8); + assertEquals(inputString, new String(read, StandardCharsets.UTF_8)); + + // Read using filesystem. + String rootPath = String.format("%s://%s.%s/", OZONE_URI_SCHEME, + bucketName, volumeName, StandardCharsets.UTF_8); + OzoneFileSystem o3fs = (OzoneFileSystem) FileSystem.get(new URI(rootPath), + conf); + FSDataInputStream fsDataInputStream = o3fs.open(new Path(key)); + read = new byte[length]; + fsDataInputStream.read(read, 0, length); + fsDataInputStream.close(); + + assertEquals(inputString, new String(read, StandardCharsets.UTF_8)); } } - private void createKey(OzoneBucket ozoneBucket, String key, int length, - byte[] input) throws Exception { - - OzoneOutputStream ozoneOutputStream = - ozoneBucket.createKey(key, length); - - ozoneOutputStream.write(input); - ozoneOutputStream.write(input, 0, 10); - ozoneOutputStream.close(); - - // Read the key with given key name. - OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); - byte[] read = new byte[length]; - ozoneInputStream.read(read, 0, length); - ozoneInputStream.close(); - - String inputString = new String(input, StandardCharsets.UTF_8); - assertEquals(inputString, new String(read, StandardCharsets.UTF_8)); - - // Read using filesystem. - String rootPath = String.format("%s://%s.%s/", OZONE_URI_SCHEME, - bucketName, volumeName, StandardCharsets.UTF_8); - OzoneFileSystem o3fs = (OzoneFileSystem) FileSystem.get(new URI(rootPath), - conf); - FSDataInputStream fsDataInputStream = o3fs.open(new Path(key)); - read = new byte[length]; - fsDataInputStream.read(read, 0, length); - fsDataInputStream.close(); - - assertEquals(inputString, new String(read, StandardCharsets.UTF_8)); - } - @Test public void testRenameKey() throws IOException { String fromKeyName = UUID.randomUUID().toString(); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java index 09b5ea5534a2..218f61e2e2f4 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java @@ -17,6 +17,7 @@ package org.apache.hadoop.ozone.om; +import static org.apache.hadoop.ozone.TestDataUtil.createKey; import static org.apache.hadoop.ozone.security.acl.OzoneObj.StoreType.OZONE; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -37,7 +38,6 @@ import org.apache.hadoop.ozone.client.OzoneBucket; import org.apache.hadoop.ozone.client.OzoneClient; import org.apache.hadoop.ozone.client.OzoneVolume; -import org.apache.hadoop.ozone.client.io.OzoneOutputStream; import org.apache.hadoop.ozone.client.protocol.ClientProtocol; import org.apache.hadoop.ozone.om.exceptions.OMException; import org.apache.hadoop.ozone.security.acl.OzoneAclConfig; @@ -250,7 +250,7 @@ public void testKeyDefaultACL() throws Exception { byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); String keyName = UUID.randomUUID().toString(); - createKey(ozoneBucket, keyName, length, input); + createKey(ozoneBucket, keyName, new String(input)); obj = OzoneObjInfo.Builder.newBuilder().setVolumeName(volume.getName()) .setBucketName(ozoneBucket.getName()).setKeyName(keyName) .setResType(OzoneObj.ResourceType.KEY).setStoreType(OZONE).build(); @@ -334,19 +334,10 @@ private void createKeys(ObjectStore objectStore, OzoneBucket ozoneBucket, byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, 10, input); + createKey(ozoneBucket, key, new String(input)); setKeyAcl(objectStore, ozoneBucket.getVolumeName(), ozoneBucket.getName(), key, aclWorldAll); } } - - private void createKey(OzoneBucket ozoneBucket, String key, int length, - byte[] input) throws Exception { - OzoneOutputStream ozoneOutputStream = ozoneBucket.createKey(key, length); - ozoneOutputStream.write(input); - ozoneOutputStream.write(input, 0, 10); - ozoneOutputStream.close(); - } - } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java index e8196b4d3353..c2e850992664 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java @@ -361,12 +361,7 @@ private void createKeys(OzoneBucket ozoneBucket, List keys) private void createKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) throws Exception { - OzoneOutputStream ozoneOutputStream = - ozoneBucket.createKey(key, length); - - ozoneOutputStream.write(input); - ozoneOutputStream.write(input, 0, 10); - ozoneOutputStream.close(); + TestDataUtil.createKey(ozoneBucket, key, new String(input)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); From 0ef7e44c816640c0a82675aaf16507ca9fec18d6 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Sun, 23 Feb 2025 13:59:35 +0800 Subject: [PATCH 02/13] Removed imports --- .../java/org/apache/hadoop/ozone/om/TestBucketOwner.java | 1 - .../java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java | 1 - .../org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java | 5 +---- .../hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java | 1 - 4 files changed, 1 insertion(+), 7 deletions(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java index e0d06cd11b5e..f4d01cc1e5ed 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java @@ -33,7 +33,6 @@ import org.apache.hadoop.ozone.client.OzoneBucket; import org.apache.hadoop.ozone.client.OzoneClient; import org.apache.hadoop.ozone.client.OzoneVolume; -import org.apache.hadoop.ozone.client.io.OzoneOutputStream; import org.apache.hadoop.ozone.client.protocol.ClientProtocol; import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer; import org.apache.hadoop.ozone.security.acl.OzoneObj; 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 8f974bb7d684..954d64fe5cbd 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 @@ -42,7 +42,6 @@ import org.apache.hadoop.ozone.client.OzoneKey; import org.apache.hadoop.ozone.client.OzoneVolume; import org.apache.hadoop.ozone.client.io.OzoneInputStream; -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; diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java index 871bae120453..0bffff530781 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java @@ -516,12 +516,9 @@ public void testListKeysWithNotNormalizedPath() throws Exception { byte[] input = new byte[length]; Arrays.fill(input, (byte)96); - createKey(ozoneBucket, key1, 10, input); - createKey(ozoneBucket, key2, 10, input); - createKey(ozoneBucket, key3, 10, input); + createAndAssertKeys(ozoneBucket, keys); // Iterator with key name as prefix. - Iterator ozoneKeyIterator = ozoneBucket.listKeys("/dir1//", null); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java index c2e850992664..0c6a4f768095 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java @@ -76,7 +76,6 @@ import org.apache.hadoop.ozone.client.OzoneSnapshot; import org.apache.hadoop.ozone.client.OzoneVolume; import org.apache.hadoop.ozone.client.io.OzoneInputStream; -import org.apache.hadoop.ozone.client.io.OzoneOutputStream; import org.apache.hadoop.ozone.om.KeyManagerImpl; import org.apache.hadoop.ozone.om.OMConfigKeys; import org.apache.hadoop.ozone.om.OmSnapshotManager; From cd9cc24f1b5a9a7584abda8868d6450138639520 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Sun, 23 Feb 2025 14:02:32 +0800 Subject: [PATCH 03/13] Fixed style --- .../test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java index f4d01cc1e5ed..73163083c2f2 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java @@ -177,7 +177,7 @@ public void testVolumeOwner() throws Exception { OzoneBucket ozoneBucket = volume.getBucket("bucket1"); //Key Create byte[] bytes = new byte[10]; - createKey(ozoneBucket, "key2",new String(bytes)); + createKey(ozoneBucket, "key2", new String(bytes)); //Key Delete ozoneBucket.deleteKey("key2"); //List Keys From 1046be715e63b500055da4b76a91a6865cd07ff3 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Sun, 23 Feb 2025 14:28:06 +0800 Subject: [PATCH 04/13] Fixed findingbugs --- .../hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java | 2 +- .../java/org/apache/hadoop/ozone/om/TestBucketOwner.java | 7 ++++--- .../test/java/org/apache/hadoop/ozone/om/TestListKeys.java | 2 +- .../org/apache/hadoop/ozone/om/TestListKeysWithFSO.java | 2 +- .../org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java | 2 +- .../apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java | 5 +++-- .../hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java | 2 +- 7 files changed, 12 insertions(+), 10 deletions(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java index 6091dfe727ab..770c2cce3f42 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java @@ -418,7 +418,7 @@ private void createAndAssertKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) throws Exception { - createKey(ozoneBucket, key, new String(input)); + createKey(ozoneBucket, key, new String(input, UTF_8)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java index 73163083c2f2..e4f4fdf03775 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java @@ -25,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.UUID; import org.apache.hadoop.hdds.protocol.StorageType; import org.apache.hadoop.ozone.OzoneAcl; @@ -93,8 +94,8 @@ public void testBucketOwner() throws Exception { OzoneBucket ozoneBucket = volume.getBucket("bucket1"); //Key Create byte[] bytes = new byte[10]; - createKey(ozoneBucket, "key1", new String(bytes)); - createKey(ozoneBucket, "key2", new String(bytes)); + createKey(ozoneBucket, "key1", new String(bytes, StandardCharsets.UTF_8)); + createKey(ozoneBucket, "key2", new String(bytes, StandardCharsets.UTF_8)); //Key Delete ozoneBucket.deleteKey("key1"); //Bucket Delete @@ -120,7 +121,7 @@ public void testNonBucketNonVolumeOwner() throws Exception { OzoneVolume volume = client.getObjectStore().getVolume(VOLUME_NAME); OzoneBucket ozoneBucket = volume.getBucket("bucket1"); byte[] bytes = new byte[10]; - createKey(ozoneBucket, "key3", new String(bytes)); + createKey(ozoneBucket, "key3", new String(bytes, StandardCharsets.UTF_8)); }, "Create key as non-volume and non-bucket owner should fail"); } //Key Delete - should fail diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java index d2a67b04d180..c370552b3c71 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java @@ -375,7 +375,7 @@ private static void createAndAssertKeys(OzoneBucket ozoneBucket, List ke byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, new String(input)); + createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); 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 954d64fe5cbd..1fbcc6d3dcfc 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 @@ -647,7 +647,7 @@ private static void createAndAssertKeys(OzoneBucket ozoneBucket, List ke byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, new String(input)); + createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java index 0bffff530781..dd43d0c1ac70 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java @@ -566,7 +566,7 @@ private void createAndAssertKeys(OzoneBucket ozoneBucket, List keys) byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, new String(input)); + createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java index 218f61e2e2f4..59cb39cbd0eb 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java @@ -25,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.security.PrivilegedExceptionAction; import java.util.ArrayList; import java.util.Arrays; @@ -250,7 +251,7 @@ public void testKeyDefaultACL() throws Exception { byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); String keyName = UUID.randomUUID().toString(); - createKey(ozoneBucket, keyName, new String(input)); + createKey(ozoneBucket, keyName, new String(input, StandardCharsets.UTF_8)); obj = OzoneObjInfo.Builder.newBuilder().setVolumeName(volume.getName()) .setBucketName(ozoneBucket.getName()).setKeyName(keyName) .setResType(OzoneObj.ResourceType.KEY).setStoreType(OZONE).build(); @@ -334,7 +335,7 @@ private void createKeys(ObjectStore objectStore, OzoneBucket ozoneBucket, byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, new String(input)); + createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); setKeyAcl(objectStore, ozoneBucket.getVolumeName(), ozoneBucket.getName(), key, aclWorldAll); } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java index 0c6a4f768095..2fe30deb47bf 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java @@ -360,7 +360,7 @@ private void createKeys(OzoneBucket ozoneBucket, List keys) private void createKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) throws Exception { - TestDataUtil.createKey(ozoneBucket, key, new String(input)); + TestDataUtil.createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); From 14472d314607e451b1fcf8696d3c4aa0e4c737a0 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Sun, 23 Feb 2025 14:39:42 +0800 Subject: [PATCH 05/13] Fixed findingbugs --- .../test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java index e4f4fdf03775..4e6a5eca6c71 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java @@ -178,7 +178,7 @@ public void testVolumeOwner() throws Exception { OzoneBucket ozoneBucket = volume.getBucket("bucket1"); //Key Create byte[] bytes = new byte[10]; - createKey(ozoneBucket, "key2", new String(bytes)); + createKey(ozoneBucket, "key2", new String(bytes, StandardCharsets.UTF_8)); //Key Delete ozoneBucket.deleteKey("key2"); //List Keys From e2ad72b2171c5f9a9838d15369b78fc6a665364b Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Mon, 24 Feb 2025 21:21:35 +0800 Subject: [PATCH 06/13] Fixed tests --- .../test/java/org/apache/hadoop/ozone/om/TestListKeys.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java index c370552b3c71..8064cbc7efb3 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java @@ -34,6 +34,8 @@ import java.util.Optional; import java.util.stream.Stream; import org.apache.hadoop.hdds.client.ReplicationConfig; +import org.apache.hadoop.hdds.client.ReplicationFactor; +import org.apache.hadoop.hdds.client.ReplicationType; import org.apache.hadoop.hdds.conf.OzoneConfiguration; import org.apache.hadoop.hdds.utils.IOUtils; import org.apache.hadoop.ozone.TestDataUtil; @@ -375,7 +377,8 @@ private static void createAndAssertKeys(OzoneBucket ozoneBucket, List ke byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); + createKey(ozoneBucket, key, ReplicationFactor.THREE, ReplicationType.RATIS, + new String(input, StandardCharsets.UTF_8)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); From e290b87b1775cda963ceeb4ac152c5083e852650 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Mon, 24 Feb 2025 23:17:50 +0800 Subject: [PATCH 07/13] Fixed tests --- .../java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 1fbcc6d3dcfc..55337064f8cb 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 @@ -31,6 +31,8 @@ import java.util.Optional; import org.apache.commons.lang3.RandomStringUtils; import org.apache.hadoop.hdds.client.ReplicationConfig; +import org.apache.hadoop.hdds.client.ReplicationFactor; +import org.apache.hadoop.hdds.client.ReplicationType; import org.apache.hadoop.hdds.conf.OzoneConfiguration; import org.apache.hadoop.hdds.protocol.StorageType; import org.apache.hadoop.hdds.utils.IOUtils; @@ -647,7 +649,8 @@ private static void createAndAssertKeys(OzoneBucket ozoneBucket, List ke byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); + createKey(ozoneBucket, key, ReplicationFactor.THREE, + ReplicationType.RATIS, new String(input, StandardCharsets.UTF_8)); // Read the key with given key name. OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); From 8ca5f9e9607353ba4ba2973ae6b9b03b2f2afd23 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Tue, 25 Feb 2025 23:25:34 +0800 Subject: [PATCH 08/13] Fixed tests --- .../org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java index dd43d0c1ac70..0f40b161a541 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java @@ -562,10 +562,11 @@ private void checkKeyList(Iterator ozoneKeyIterator, private void createAndAssertKeys(OzoneBucket ozoneBucket, List keys) throws Exception { - int length = 10; - byte[] input = new byte[length]; - Arrays.fill(input, (byte) 96); for (String key : keys) { + int length = 10; + byte[] input = new byte[length]; + Arrays.fill(input, (byte) 96); + createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); // Read the key with given key name. From fdbaac4cac1a0cfacad391e7113d9bc59d0cb502 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Tue, 25 Feb 2025 23:45:37 +0800 Subject: [PATCH 09/13] Fixed tests --- .../org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java index 0f40b161a541..06a39d04ff14 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java @@ -37,6 +37,7 @@ import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -516,7 +517,9 @@ public void testListKeysWithNotNormalizedPath() throws Exception { byte[] input = new byte[length]; Arrays.fill(input, (byte)96); - createAndAssertKeys(ozoneBucket, keys); + createAndAssertKeys(ozoneBucket, Collections.singletonList(key1)); + createAndAssertKeys(ozoneBucket, Collections.singletonList(key2)); + createAndAssertKeys(ozoneBucket, Collections.singletonList(key3)); // Iterator with key name as prefix. Iterator ozoneKeyIterator = From 202343243b59f5b829bce5f69291bfdc050d2635 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Fri, 28 Feb 2025 18:06:07 +0800 Subject: [PATCH 10/13] Apply review comments --- .../TestOzoneFSWithObjectStoreCreate.java | 13 ++-- .../org/apache/hadoop/ozone/TestDataUtil.java | 15 +++++ .../hadoop/ozone/om/TestBucketOwner.java | 13 ++-- .../apache/hadoop/ozone/om/TestListKeys.java | 21 ++++--- .../hadoop/ozone/om/TestListKeysWithFSO.java | 21 ++++--- .../ozone/om/TestObjectStoreWithFSO.java | 63 +++++++++---------- .../ozone/om/TestRecursiveAclWithFSO.java | 5 +- .../om/snapshot/TestOmSnapshotFileSystem.java | 8 ++- 8 files changed, 91 insertions(+), 68 deletions(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java index 770c2cce3f42..b64657b08785 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java @@ -414,13 +414,18 @@ private void checkKeyList(Iterator ozoneKeyIterator, assertEquals(keys, outputKeys); } - private void createAndAssertKey(OzoneBucket ozoneBucket, String key, int length, - byte[] input) + private void createAndAssertKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) throws Exception { - createKey(ozoneBucket, key, new String(input, UTF_8)); - + createKey(ozoneBucket, key, input); // Read the key with given key name. + readKey(ozoneBucket, key, length, input); + + } + + private void readKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) + throws Exception{ + OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); byte[] read = new byte[length]; ozoneInputStream.read(read, 0, length); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java index 40447d054d37..5b648cacbf2a 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java @@ -26,6 +26,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -111,6 +112,20 @@ public static void createKey(OzoneBucket bucket, String keyName, ReplicationType.RATIS, content); } + public static void createKey(OzoneBucket bucket, String keyName, + byte[] content) throws IOException { + createKey(bucket, keyName, ReplicationFactor.ONE, + ReplicationType.RATIS, new String(content)); + } + + public static void createKey(OzoneBucket bucket, String keyName, + ReplicationFactor repFactor, ReplicationType repType, byte[] content) + throws IOException { + ReplicationConfig repConfig = ReplicationConfig + .fromTypeAndFactor(repType, repFactor); + createKey(bucket, keyName, repConfig, new String(content, UTF_8)); + } + public static void createKey(OzoneBucket bucket, String keyName, ReplicationFactor repFactor, ReplicationType repType, String content) throws IOException { diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java index 4e6a5eca6c71..8f682a31e475 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestBucketOwner.java @@ -25,7 +25,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.UUID; import org.apache.hadoop.hdds.protocol.StorageType; import org.apache.hadoop.ozone.OzoneAcl; @@ -93,9 +92,8 @@ public void testBucketOwner() throws Exception { .getVolume(VOLUME_NAME); OzoneBucket ozoneBucket = volume.getBucket("bucket1"); //Key Create - byte[] bytes = new byte[10]; - createKey(ozoneBucket, "key1", new String(bytes, StandardCharsets.UTF_8)); - createKey(ozoneBucket, "key2", new String(bytes, StandardCharsets.UTF_8)); + createKey(ozoneBucket, "key1", new byte[10]); + createKey(ozoneBucket, "key2", new byte[10]); //Key Delete ozoneBucket.deleteKey("key1"); //Bucket Delete @@ -120,8 +118,7 @@ public void testNonBucketNonVolumeOwner() throws Exception { assertThrows(Exception.class, () -> { OzoneVolume volume = client.getObjectStore().getVolume(VOLUME_NAME); OzoneBucket ozoneBucket = volume.getBucket("bucket1"); - byte[] bytes = new byte[10]; - createKey(ozoneBucket, "key3", new String(bytes, StandardCharsets.UTF_8)); + createKey(ozoneBucket, "key3", new byte[10]); }, "Create key as non-volume and non-bucket owner should fail"); } //Key Delete - should fail @@ -176,9 +173,7 @@ public void testVolumeOwner() throws Exception { try (OzoneClient client = cluster().newClient()) { OzoneVolume volume = client.getObjectStore().getVolume(VOLUME_NAME); OzoneBucket ozoneBucket = volume.getBucket("bucket1"); - //Key Create - byte[] bytes = new byte[10]; - createKey(ozoneBucket, "key2", new String(bytes, StandardCharsets.UTF_8)); + createKey(ozoneBucket, "key2", new byte[10]); //Key Delete ozoneBucket.deleteKey("key2"); //List Keys diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java index 8064cbc7efb3..c3b7dc6b334a 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java @@ -377,16 +377,19 @@ private static void createAndAssertKeys(OzoneBucket ozoneBucket, List ke byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, ReplicationFactor.THREE, ReplicationType.RATIS, - new String(input, StandardCharsets.UTF_8)); - + createKey(ozoneBucket, key, ReplicationFactor.THREE, ReplicationType.RATIS, input); // Read the key with given key name. - OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); - byte[] read = new byte[length]; - ozoneInputStream.read(read, 0, length); - ozoneInputStream.close(); - - assertEquals(new String(input, StandardCharsets.UTF_8), new String(read, StandardCharsets.UTF_8)); + readkey(ozoneBucket, key, length, input); } } + + private static void readkey(OzoneBucket ozoneBucket, String key, int length, byte[] input) + throws Exception{ + OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); + byte[] read = new byte[length]; + ozoneInputStream.read(read, 0, length); + ozoneInputStream.close(); + + assertEquals(new String(input, StandardCharsets.UTF_8), new String(read, StandardCharsets.UTF_8)); + } } 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 55337064f8cb..1ecca5254017 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 @@ -650,16 +650,19 @@ private static void createAndAssertKeys(OzoneBucket ozoneBucket, List ke Arrays.fill(input, (byte) 96); for (String key : keys) { createKey(ozoneBucket, key, ReplicationFactor.THREE, - ReplicationType.RATIS, new String(input, StandardCharsets.UTF_8)); - + ReplicationType.RATIS, input); // Read the key with given key name. - OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); - byte[] read = new byte[length]; - ozoneInputStream.read(read, 0, length); - ozoneInputStream.close(); - - assertEquals(new String(input, StandardCharsets.UTF_8), - new String(read, StandardCharsets.UTF_8)); + readkey(ozoneBucket, key, length, input); } } + + private static void readkey(OzoneBucket ozoneBucket, String key, int length, byte[] input) + throws Exception{ + OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); + byte[] read = new byte[length]; + ozoneInputStream.read(read, 0, length); + ozoneInputStream.close(); + + assertEquals(new String(input, StandardCharsets.UTF_8), new String(read, StandardCharsets.UTF_8)); + } } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java index 06a39d04ff14..9f4a7175cfdb 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java @@ -37,7 +37,6 @@ import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -513,13 +512,7 @@ public void testListKeysWithNotNormalizedPath() throws Exception { keys.add(OmUtils.normalizeKey(key2, false)); keys.add(OmUtils.normalizeKey(key3, false)); - int length = 10; - byte[] input = new byte[length]; - Arrays.fill(input, (byte)96); - - createAndAssertKeys(ozoneBucket, Collections.singletonList(key1)); - createAndAssertKeys(ozoneBucket, Collections.singletonList(key2)); - createAndAssertKeys(ozoneBucket, Collections.singletonList(key3)); + createAndAssertKeys(ozoneBucket, Arrays.asList(key1, key2, key3)); // Iterator with key name as prefix. Iterator ozoneKeyIterator = @@ -565,36 +558,42 @@ private void checkKeyList(Iterator ozoneKeyIterator, private void createAndAssertKeys(OzoneBucket ozoneBucket, List keys) throws Exception { - for (String key : keys) { - int length = 10; - byte[] input = new byte[length]; - Arrays.fill(input, (byte) 96); - createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); + int length = 10; + byte[] input = new byte[length]; + Arrays.fill(input, (byte) 96); + for (String key : keys) { + createKey(ozoneBucket, key, input); // Read the key with given key name. - OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); - byte[] read = new byte[length]; - ozoneInputStream.read(read, 0, length); - ozoneInputStream.close(); - - String inputString = new String(input, StandardCharsets.UTF_8); - assertEquals(inputString, new String(read, StandardCharsets.UTF_8)); - - // Read using filesystem. - String rootPath = String.format("%s://%s.%s/", OZONE_URI_SCHEME, - bucketName, volumeName, StandardCharsets.UTF_8); - OzoneFileSystem o3fs = (OzoneFileSystem) FileSystem.get(new URI(rootPath), - conf); - FSDataInputStream fsDataInputStream = o3fs.open(new Path(key)); - read = new byte[length]; - fsDataInputStream.read(read, 0, length); - fsDataInputStream.close(); - - assertEquals(inputString, new String(read, StandardCharsets.UTF_8)); + readKey(ozoneBucket, key, length, input); } } + private void readKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) + throws Exception{ + + OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); + byte[] read = new byte[length]; + ozoneInputStream.read(read, 0, length); + ozoneInputStream.close(); + + String inputString = new String(input, StandardCharsets.UTF_8); + assertEquals(inputString, new String(read, StandardCharsets.UTF_8)); + + // Read using filesystem. + String rootPath = String.format("%s://%s.%s/", OZONE_URI_SCHEME, + bucketName, volumeName, StandardCharsets.UTF_8); + OzoneFileSystem o3fs = (OzoneFileSystem) FileSystem.get(new URI(rootPath), + conf); + FSDataInputStream fsDataInputStream = o3fs.open(new Path(key)); + read = new byte[length]; + fsDataInputStream.read(read, 0, length); + fsDataInputStream.close(); + + assertEquals(inputString, new String(read, StandardCharsets.UTF_8)); + } + @Test public void testRenameKey() throws IOException { String fromKeyName = UUID.randomUUID().toString(); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java index 59cb39cbd0eb..556f5264039b 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestRecursiveAclWithFSO.java @@ -25,7 +25,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.security.PrivilegedExceptionAction; import java.util.ArrayList; import java.util.Arrays; @@ -251,7 +250,7 @@ public void testKeyDefaultACL() throws Exception { byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); String keyName = UUID.randomUUID().toString(); - createKey(ozoneBucket, keyName, new String(input, StandardCharsets.UTF_8)); + createKey(ozoneBucket, keyName, input); obj = OzoneObjInfo.Builder.newBuilder().setVolumeName(volume.getName()) .setBucketName(ozoneBucket.getName()).setKeyName(keyName) .setResType(OzoneObj.ResourceType.KEY).setStoreType(OZONE).build(); @@ -335,7 +334,7 @@ private void createKeys(ObjectStore objectStore, OzoneBucket ozoneBucket, byte[] input = new byte[length]; Arrays.fill(input, (byte) 96); for (String key : keys) { - createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); + createKey(ozoneBucket, key, input); setKeyAcl(objectStore, ozoneBucket.getVolumeName(), ozoneBucket.getName(), key, aclWorldAll); } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java index 2fe30deb47bf..f44e2282d799 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java @@ -360,9 +360,13 @@ private void createKeys(OzoneBucket ozoneBucket, List keys) private void createKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) throws Exception { - TestDataUtil.createKey(ozoneBucket, key, new String(input, StandardCharsets.UTF_8)); - + TestDataUtil.createKey(ozoneBucket, key, input); // Read the key with given key name. + readkey(ozoneBucket, key, length, input); + } + + private void readkey(OzoneBucket ozoneBucket, String key, int length, byte[] input) + throws Exception{ OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); byte[] read = new byte[length]; ozoneInputStream.read(read, 0, length); From 833d1c08d7a37f1282f93aaed8b1cbdf859dc86b Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Fri, 28 Feb 2025 18:21:27 +0800 Subject: [PATCH 11/13] Fixed styles --- .../hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java | 2 +- .../src/test/java/org/apache/hadoop/ozone/TestDataUtil.java | 2 +- .../src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java | 2 +- .../java/org/apache/hadoop/ozone/om/TestListKeysWithFSO.java | 2 +- .../java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java | 2 +- .../hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java index b64657b08785..dd6f8d971d18 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSWithObjectStoreCreate.java @@ -424,7 +424,7 @@ private void createAndAssertKey(OzoneBucket ozoneBucket, String key, int length, } private void readKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) - throws Exception{ + throws Exception { OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); byte[] read = new byte[length]; diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java index 5b648cacbf2a..fb8c23392334 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java @@ -115,7 +115,7 @@ public static void createKey(OzoneBucket bucket, String keyName, public static void createKey(OzoneBucket bucket, String keyName, byte[] content) throws IOException { createKey(bucket, keyName, ReplicationFactor.ONE, - ReplicationType.RATIS, new String(content)); + ReplicationType.RATIS, new String(content, UTF_8)); } public static void createKey(OzoneBucket bucket, String keyName, diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java index c3b7dc6b334a..7b2404e51ff7 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestListKeys.java @@ -384,7 +384,7 @@ private static void createAndAssertKeys(OzoneBucket ozoneBucket, List ke } private static void readkey(OzoneBucket ozoneBucket, String key, int length, byte[] input) - throws Exception{ + throws Exception { OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); byte[] read = new byte[length]; ozoneInputStream.read(read, 0, length); 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 1ecca5254017..6aa60365a753 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 @@ -657,7 +657,7 @@ private static void createAndAssertKeys(OzoneBucket ozoneBucket, List ke } private static void readkey(OzoneBucket ozoneBucket, String key, int length, byte[] input) - throws Exception{ + throws Exception { OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); byte[] read = new byte[length]; ozoneInputStream.read(read, 0, length); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java index 9f4a7175cfdb..42c013570570 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestObjectStoreWithFSO.java @@ -571,7 +571,7 @@ private void createAndAssertKeys(OzoneBucket ozoneBucket, List keys) } private void readKey(OzoneBucket ozoneBucket, String key, int length, byte[] input) - throws Exception{ + throws Exception { OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); byte[] read = new byte[length]; diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java index f44e2282d799..cc6de0f9d32a 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOmSnapshotFileSystem.java @@ -366,7 +366,7 @@ private void createKey(OzoneBucket ozoneBucket, String key, int length, } private void readkey(OzoneBucket ozoneBucket, String key, int length, byte[] input) - throws Exception{ + throws Exception { OzoneInputStream ozoneInputStream = ozoneBucket.readKey(key); byte[] read = new byte[length]; ozoneInputStream.read(read, 0, length); From 7b48861a9b44bc4c47a948f32582963153a8b388 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Fri, 28 Feb 2025 18:23:31 +0800 Subject: [PATCH 12/13] Fixed styles --- .../src/test/java/org/apache/hadoop/ozone/TestDataUtil.java | 1 - 1 file changed, 1 deletion(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java index fb8c23392334..ca3fbaf790ab 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java @@ -26,7 +26,6 @@ import java.io.InputStream; import java.io.OutputStream; import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; From 83b78bca2167ab8bbe365da08a19378b7272f041 Mon Sep 17 00:00:00 2001 From: Chia-Chuan Yu Date: Fri, 28 Feb 2025 20:19:53 +0800 Subject: [PATCH 13/13] String calls byte --- .../org/apache/hadoop/ozone/TestDataUtil.java | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java index ca3fbaf790ab..643e996087a2 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestDataUtil.java @@ -108,13 +108,14 @@ public static OzoneVolume createVolume(OzoneClient client, public static void createKey(OzoneBucket bucket, String keyName, String content) throws IOException { createKey(bucket, keyName, ReplicationFactor.ONE, - ReplicationType.RATIS, content); + ReplicationType.RATIS, content.getBytes(UTF_8)); } public static void createKey(OzoneBucket bucket, String keyName, byte[] content) throws IOException { createKey(bucket, keyName, ReplicationFactor.ONE, - ReplicationType.RATIS, new String(content, UTF_8)); + ReplicationType.RATIS, content); + } public static void createKey(OzoneBucket bucket, String keyName, @@ -122,7 +123,21 @@ public static void createKey(OzoneBucket bucket, String keyName, throws IOException { ReplicationConfig repConfig = ReplicationConfig .fromTypeAndFactor(repType, repFactor); - createKey(bucket, keyName, repConfig, new String(content, UTF_8)); + try (OutputStream stream = bucket + .createKey(keyName, content.length, repConfig, + new HashMap<>())) { + stream.write(content); + } + } + + public static void createKey(OzoneBucket bucket, String keyName, + ReplicationConfig repConfig, byte[] content) + throws IOException { + try (OutputStream stream = bucket + .createKey(keyName, content.length, repConfig, + new HashMap<>())) { + stream.write(content); + } } public static void createKey(OzoneBucket bucket, String keyName, @@ -130,17 +145,13 @@ public static void createKey(OzoneBucket bucket, String keyName, throws IOException { ReplicationConfig repConfig = ReplicationConfig .fromTypeAndFactor(repType, repFactor); - createKey(bucket, keyName, repConfig, content); + createKey(bucket, keyName, repConfig, content.getBytes(UTF_8)); } public static void createKey(OzoneBucket bucket, String keyName, ReplicationConfig repConfig, String content) throws IOException { - try (OutputStream stream = bucket - .createKey(keyName, content.length(), repConfig, - new HashMap<>())) { - stream.write(content.getBytes(UTF_8)); - } + createKey(bucket, keyName, repConfig, content.getBytes(UTF_8)); } public static void createKey(OzoneBucket bucket, String keyName,