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

adoroszlai 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 657677316ff HDDS-14189. Copy OmKeyInfo using toBuilder instead of 
newBuilder (#9510)
657677316ff is described below

commit 657677316ff8c688f0e9d71d13eafd70f2eb8b49
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Fri Dec 19 13:33:31 2025 +0100

    HDDS-14189. Copy OmKeyInfo using toBuilder instead of newBuilder (#9510)
---
 .../apache/hadoop/ozone/client/rpc/RpcClient.java  | 17 +--------------
 .../apache/hadoop/ozone/om/helpers/OmKeyInfo.java  |  1 +
 .../org/apache/hadoop/ozone/om/KeyManagerImpl.java |  7 +-----
 .../S3MultipartUploadCompleteRequest.java          | 25 +++++-----------------
 .../S3MultipartUploadCompleteRequestWithFSO.java   |  7 ------
 5 files changed, 8 insertions(+), 49 deletions(-)

diff --git 
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
 
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
index 5fce2b83fd5..3947e4b6818 100644
--- 
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
+++ 
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
@@ -1601,25 +1601,10 @@ public OzoneInputStream getKey(
             Collections.singletonList(keyLocationInfoGroup);
 
         keyInfo.setKeyLocationVersions(keyLocationInfoGroups);
-        OmKeyInfo dnKeyInfo = new OmKeyInfo.Builder()
-            .setVolumeName(keyInfo.getVolumeName())
-            .setBucketName(keyInfo.getBucketName())
-            .setKeyName(keyInfo.getKeyName())
-            .setOmKeyLocationInfos(keyInfo.getKeyLocationVersions())
-            .setDataSize(keyInfo.getDataSize())
-            .setCreationTime(keyInfo.getCreationTime())
-            .setModificationTime(keyInfo.getModificationTime())
+        OmKeyInfo dnKeyInfo = keyInfo.toBuilder()
             .setReplicationConfig(replicationConfig instanceof 
ECReplicationConfig
                     ? 
RatisReplicationConfig.getInstance(HddsProtos.ReplicationFactor.ONE)
                     : keyInfo.getReplicationConfig())
-            .setFileEncryptionInfo(keyInfo.getFileEncryptionInfo())
-            .setAcls(keyInfo.getAcls())
-            .setObjectID(keyInfo.getObjectID())
-            .setUpdateID(keyInfo.getUpdateID())
-            .setParentObjectID(keyInfo.getParentObjectID())
-            .setFileChecksum(keyInfo.getFileChecksum())
-            .setOwnerName(keyInfo.getOwnerName())
-            .addAllMetadata(keyInfo.getMetadata())
             .build();
         dnKeyInfo.setKeyLocationVersions(keyLocationInfoGroups);
 
diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java
index 7cfbf4172d4..76e0cac3f46 100644
--- 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java
@@ -546,6 +546,7 @@ public Builder setOwnerName(String owner) {
     public Builder setOmKeyLocationInfos(
         List<OmKeyLocationInfoGroup> omKeyLocationInfoList) {
       if (omKeyLocationInfoList != null) {
+        this.omKeyLocationInfoGroups.clear();
         this.omKeyLocationInfoGroups.addAll(omKeyLocationInfoList);
       }
       return this;
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java
index e1850e33bc6..604a06f5751 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java
@@ -1721,19 +1721,14 @@ private OmKeyInfo createDirectoryKey(OmKeyInfo keyInfo, 
String keyName)
 
     String dir = OzoneFSUtils.addTrailingSlashIfNeeded(keyName);
     FileEncryptionInfo encInfo = getFileEncryptionInfo(bucketInfo);
-    return new OmKeyInfo.Builder()
-        .setVolumeName(keyInfo.getVolumeName())
-        .setBucketName(keyInfo.getBucketName())
+    return keyInfo.toBuilder()
         .setKeyName(dir)
         .setOmKeyLocationInfos(Collections.singletonList(
             new OmKeyLocationInfoGroup(0, new ArrayList<>())))
         .setCreationTime(Time.now())
         .setModificationTime(Time.now())
         .setDataSize(0)
-        .setReplicationConfig(keyInfo.getReplicationConfig())
         .setFileEncryptionInfo(encInfo)
-        .setAcls(keyInfo.getAcls())
-        .setOwnerName(keyInfo.getOwnerName())
         .build();
   }
 
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
index 8db0b7402c9..cadd7f80b62 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
@@ -464,7 +464,7 @@ protected OmKeyInfo getOmKeyInfo(long trxnLogIndex,
 
     OmKeyInfo omKeyInfo = getOmKeyInfoFromKeyTable(ozoneKey, keyName,
             omMetadataManager);
-    OmKeyInfo.Builder builder = null;
+    OmKeyInfo.Builder builder;
     if (omKeyInfo == null) {
       // This is a newly added key, it does not have any versions.
       OmKeyLocationInfoGroup keyLocationInfoGroup = new
@@ -475,30 +475,20 @@ protected OmKeyInfo getOmKeyInfo(long trxnLogIndex,
               keyName, omMetadataManager);
 
       // A newly created key, this is the first version.
-      builder = new OmKeyInfo.Builder().setVolumeName(volumeName)
-          .setBucketName(bucketName).setKeyName(dbOpenKeyInfo.getKeyName())
+      builder = dbOpenKeyInfo.toBuilder()
+          .setVolumeName(volumeName)
+          .setBucketName(bucketName)
           .setReplicationConfig(ReplicationConfig.fromProto(
               partKeyInfo.getType(), partKeyInfo.getFactor(),
               partKeyInfo.getEcReplicationConfig()))
           .setCreationTime(keyArgs.getModificationTime())
           .setModificationTime(keyArgs.getModificationTime())
           .setDataSize(dataSize)
-          .setFileEncryptionInfo(dbOpenKeyInfo.getFileEncryptionInfo())
           .setOmKeyLocationInfos(
               Collections.singletonList(keyLocationInfoGroup))
-          .setAcls(dbOpenKeyInfo.getAcls())
-          .addAllMetadata(dbOpenKeyInfo.getMetadata())
           .addMetadata(OzoneConsts.ETAG,
               multipartUploadedKeyHash(partKeyInfoMap))
-          .setOwnerName(keyArgs.getOwnerName())
-          .addAllTags(dbOpenKeyInfo.getTags());
-      // Check if db entry has ObjectID. This check is required because
-      // it is possible that between multipart key uploads and complete,
-      // we had an upgrade.
-      if (dbOpenKeyInfo.getObjectID() != 0) {
-        builder.setObjectID(dbOpenKeyInfo.getObjectID());
-      }
-      updatePrefixFSOInfo(dbOpenKeyInfo, builder);
+          .setOwnerName(keyArgs.getOwnerName());
     } else {
       OmKeyInfo dbOpenKeyInfo = getOmKeyInfoFromOpenKeyTable(multipartOpenKey,
           keyName, omMetadataManager);
@@ -533,11 +523,6 @@ protected OmKeyInfo getOmKeyInfo(long trxnLogIndex,
     return builder.setUpdateID(trxnLogIndex).build();
   }
 
-  protected void updatePrefixFSOInfo(OmKeyInfo dbOpenKeyInfo,
-      OmKeyInfo.Builder builder) {
-    // FSO is disabled. Do nothing.
-  }
-
   protected String getDBOzoneKey(OMMetadataManager omMetadataManager,
       String volumeName, String bucketName, String keyName) throws IOException 
{
     return omMetadataManager.getOzoneKey(volumeName, bucketName, keyName);
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequestWithFSO.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequestWithFSO.java
index cf888c50e6c..a5c8b2703d6 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequestWithFSO.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequestWithFSO.java
@@ -123,13 +123,6 @@ protected void addKeyTableCacheEntry(OMMetadataManager 
omMetadataManager,
         omKeyInfo.getFileName(), transactionLogIndex);
   }
 
-  @Override
-  protected void updatePrefixFSOInfo(OmKeyInfo dbOpenKeyInfo,
-                                     OmKeyInfo.Builder builder) {
-    // updates parentID
-    builder.setParentObjectID(dbOpenKeyInfo.getParentObjectID());
-  }
-
   @Override
   protected String getDBOzoneKey(OMMetadataManager omMetadataManager,
       String volumeName, String bucketName, String keyName)throws IOException {


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

Reply via email to