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

szetszwo 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 ea7c47f3708 HDDS-14623. Remove ProtoUtils (#9783)
ea7c47f3708 is described below

commit ea7c47f370882e58d3a1ef6a419979262aec2024
Author: Russole <[email protected]>
AuthorDate: Thu Feb 19 03:27:22 2026 +0800

    HDDS-14623. Remove ProtoUtils (#9783)
---
 .../main/java/com/google/protobuf/ProtoUtils.java  | 32 ----------------------
 .../TestReconstructECContainersCommandHandler.java |  4 +--
 .../states/endpoint/TestHeartbeatEndpointTask.java |  4 +--
 .../replication/TestReplicationSupervisor.java     |  4 +--
 .../TestReconstructionECContainersCommands.java    |  6 ++--
 .../replication/ECUnderReplicationHandler.java     |  6 ++--
 .../replication/TestReplicationManager.java        |  6 ++--
 .../java/org/apache/hadoop/ozone/OzoneAcl.java     |  4 +--
 ...OzoneManagerProtocolClientSideTranslatorPB.java |  8 ++++--
 .../org/apache/hadoop/ozone/util/PayloadUtils.java |  5 ++--
 10 files changed, 27 insertions(+), 52 deletions(-)

diff --git 
a/hadoop-hdds/common/src/main/java/com/google/protobuf/ProtoUtils.java 
b/hadoop-hdds/common/src/main/java/com/google/protobuf/ProtoUtils.java
deleted file mode 100644
index e8355a93bd8..00000000000
--- a/hadoop-hdds/common/src/main/java/com/google/protobuf/ProtoUtils.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.google.protobuf;
-
-/** Utilities for unshaded protobuf. */
-public final class ProtoUtils {
-  /**
-   * Similar to {@link ByteString#copyFrom(byte[])} except that this method 
does not copy.
-   * This method is safe only if the content of the array remains unchanged.
-   * Otherwise, it violates the immutability of {@link ByteString}.
-   */
-  public static ByteString unsafeByteString(byte[] array) {
-    return array != null && array.length > 0 ? ByteString.wrap(array) : 
ByteString.EMPTY;
-  }
-
-  private ProtoUtils() { }
-}
diff --git 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestReconstructECContainersCommandHandler.java
 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestReconstructECContainersCommandHandler.java
index 81c2ae907c5..9098e497da4 100644
--- 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestReconstructECContainersCommandHandler.java
+++ 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestReconstructECContainersCommandHandler.java
@@ -24,7 +24,7 @@
 import static org.mockito.Mockito.when;
 
 import com.google.protobuf.ByteString;
-import com.google.protobuf.ProtoUtils;
+import com.google.protobuf.UnsafeByteOperations;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -78,7 +78,7 @@ public void testMetrics() {
     CommandHandlerMetrics metrics = CommandHandlerMetrics.create(handlerMap);
     try {
       byte[] missingIndexes = {1, 2};
-      ByteString missingContainerIndexes = 
ProtoUtils.unsafeByteString(missingIndexes);
+      ByteString missingContainerIndexes = 
UnsafeByteOperations.unsafeWrap(missingIndexes);
       ECReplicationConfig ecReplicationConfig = new ECReplicationConfig(3, 2);
       List<DatanodeDetails> dnDetails = getDNDetails(5);
       List<ReconstructECContainersCommand.DatanodeDetailsAndReplicaIndex> 
sources =
diff --git 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTask.java
 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTask.java
index 045802b8c0c..e2b4fa167ea 100644
--- 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTask.java
+++ 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTask.java
@@ -29,7 +29,7 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import com.google.protobuf.ProtoUtils;
+import com.google.protobuf.UnsafeByteOperations;
 import java.net.InetSocketAddress;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -80,7 +80,7 @@ public void handlesReconstructContainerCommand() throws 
Exception {
     targetDns.add(MockDatanodeDetails.randomDatanodeDetails());
     ReconstructECContainersCommand cmd = new ReconstructECContainersCommand(
         1, emptyList(), targetDns,
-        ProtoUtils.unsafeByteString(new byte[]{2, 5}),
+        UnsafeByteOperations.unsafeWrap(new byte[]{2, 5}),
         new ECReplicationConfig(3, 2));
 
     when(scm.sendHeartbeat(any()))
diff --git 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
index 48fad6dab87..9ceb0a99e9f 100644
--- 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
+++ 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
@@ -40,7 +40,7 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import com.google.protobuf.ProtoUtils;
+import com.google.protobuf.UnsafeByteOperations;
 import jakarta.annotation.Nonnull;
 import java.io.File;
 import java.io.IOException;
@@ -1000,7 +1000,7 @@ private static ReconstructECContainersCommand 
createReconstructionCmd(
     List<DatanodeDetails> target = singletonList(
         MockDatanodeDetails.randomDatanodeDetails());
     ReconstructECContainersCommand cmd = new 
ReconstructECContainersCommand(containerId, sources, target,
-        ProtoUtils.unsafeByteString(missingIndexes),
+        UnsafeByteOperations.unsafeWrap(missingIndexes),
         new ECReplicationConfig(3, 2));
     cmd.setTerm(CURRENT_TERM);
     return cmd;
diff --git 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/protocol/commands/TestReconstructionECContainersCommands.java
 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/protocol/commands/TestReconstructionECContainersCommands.java
index c21bbaeda55..2cd19a556a9 100644
--- 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/protocol/commands/TestReconstructionECContainersCommands.java
+++ 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/protocol/commands/TestReconstructionECContainersCommands.java
@@ -22,7 +22,7 @@
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import com.google.protobuf.ByteString;
-import com.google.protobuf.ProtoUtils;
+import com.google.protobuf.UnsafeByteOperations;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -42,7 +42,7 @@ public class TestReconstructionECContainersCommands {
   @Test
   public void testExceptionIfSourceAndMissingNotSameLength() {
     ECReplicationConfig ecReplicationConfig = new ECReplicationConfig(3, 2);
-    final ByteString missingContainerIndexes = ProtoUtils.unsafeByteString(new 
byte[]{1, 2});
+    final ByteString missingContainerIndexes = 
UnsafeByteOperations.unsafeWrap(new byte[]{1, 2});
 
     List<DatanodeDetails> targetDns = new ArrayList<>();
     targetDns.add(MockDatanodeDetails.randomDatanodeDetails());
@@ -55,7 +55,7 @@ public void testExceptionIfSourceAndMissingNotSameLength() {
   @Test
   public void protobufConversion() {
     byte[] missingIndexes = {1, 2};
-    final ByteString missingContainerIndexes = 
ProtoUtils.unsafeByteString(missingIndexes);
+    final ByteString missingContainerIndexes = 
UnsafeByteOperations.unsafeWrap(missingIndexes);
     ECReplicationConfig ecReplicationConfig = new ECReplicationConfig(3, 2);
     final List<DatanodeDetails> dnDetails = getDNDetails(5);
 
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ECUnderReplicationHandler.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ECUnderReplicationHandler.java
index 85b6e05c837..0bf886569c9 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ECUnderReplicationHandler.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ECUnderReplicationHandler.java
@@ -22,7 +22,7 @@
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.protobuf.ByteString;
-import com.google.protobuf.ProtoUtils;
+import com.google.protobuf.UnsafeByteOperations;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -630,7 +630,9 @@ static ByteString integers2ByteString(List<Integer> src) {
     for (int i = 0; i < src.size(); i++) {
       dst[i] = src.get(i).byteValue();
     }
-    return ProtoUtils.unsafeByteString(dst);
+
+    return dst.length > 0 ? UnsafeByteOperations.unsafeWrap(dst)
+        : ByteString.EMPTY;
   }
 
   /**
diff --git 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
index aefe3a67440..1d7d619efb0 100644
--- 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
+++ 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
@@ -49,7 +49,7 @@
 import static org.mockito.Mockito.when;
 
 import com.google.common.collect.Lists;
-import com.google.protobuf.ProtoUtils;
+import com.google.protobuf.UnsafeByteOperations;
 import java.io.IOException;
 import java.time.Instant;
 import java.time.ZoneId;
@@ -1162,7 +1162,7 @@ public void testSendDatanodeReconstructCommand() throws 
NotLeaderException {
 
     ReconstructECContainersCommand command = new 
ReconstructECContainersCommand(
         containerInfo.getContainerID(), sourceNodes, targetNodes,
-        ProtoUtils.unsafeByteString(missingIndexes), ecRepConfig);
+        UnsafeByteOperations.unsafeWrap(missingIndexes), ecRepConfig);
 
     replicationManager.sendDatanodeCommand(command, containerInfo, target4);
 
@@ -1482,7 +1482,7 @@ private ReconstructECContainersCommand 
createReconstructionCommand(
     byte[] missingIndexes = new byte[]{4, 5};
     return new ReconstructECContainersCommand(
         containerInfo.getContainerID(), sources,
-        Arrays.asList(targets), ProtoUtils.unsafeByteString(missingIndexes),
+        Arrays.asList(targets), 
UnsafeByteOperations.unsafeWrap(missingIndexes),
         (ECReplicationConfig) repConfig);
   }
 
diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OzoneAcl.java 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OzoneAcl.java
index 810ed570786..bb7ae0d93da 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OzoneAcl.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OzoneAcl.java
@@ -26,7 +26,7 @@
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.protobuf.ByteString;
-import com.google.protobuf.ProtoUtils;
+import com.google.protobuf.UnsafeByteOperations;
 import java.util.ArrayList;
 import java.util.BitSet;
 import java.util.Collections;
@@ -310,7 +310,7 @@ public ByteString getAclByteString() {
     final byte first = (byte) aclBits;
     final byte second = (byte) (aclBits >>> 8);
     final byte[] bytes = second != 0 ? new byte[]{first, second} : new 
byte[]{first};
-    return ProtoUtils.unsafeByteString(bytes);
+    return UnsafeByteOperations.unsafeWrap(bytes);
   }
 
   @JsonIgnore
diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
index 8e1f036d4f2..9f09fb37e03 100644
--- 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
@@ -29,7 +29,7 @@
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.protobuf.ByteString;
-import com.google.protobuf.ProtoUtils;
+import com.google.protobuf.UnsafeByteOperations;
 import jakarta.annotation.Nonnull;
 import java.io.IOException;
 import java.time.Instant;
@@ -2488,9 +2488,13 @@ public CancelPrepareResponse cancelOzoneManagerPrepare() 
throws IOException {
   @Override
   public EchoRPCResponse echoRPCReq(byte[] payloadReq, int 
payloadSizeRespBytes,
                                     boolean writeToRatis) throws IOException {
+
+    ByteString payload = payloadReq != null && payloadReq.length > 0
+        ? UnsafeByteOperations.unsafeWrap(payloadReq) : ByteString.EMPTY;
+
     EchoRPCRequest echoRPCRequest =
             EchoRPCRequest.newBuilder()
-                    .setPayloadReq(ProtoUtils.unsafeByteString(payloadReq))
+                    .setPayloadReq(payload)
                     .setPayloadSizeResp(payloadSizeRespBytes)
                     .setReadOnly(!writeToRatis)
                     .build();
diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/util/PayloadUtils.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/util/PayloadUtils.java
index c6b66c253db..3a8a7fc791c 100644
--- 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/util/PayloadUtils.java
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/util/PayloadUtils.java
@@ -17,7 +17,6 @@
 
 package org.apache.hadoop.ozone.util;
 
-import com.google.protobuf.ProtoUtils;
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.ratis.thirdparty.com.google.protobuf.ByteString;
 import org.apache.ratis.thirdparty.com.google.protobuf.UnsafeByteOperations;
@@ -52,7 +51,9 @@ public static byte[] generatePayload(int payloadSizeBytes) {
   }
 
   public static com.google.protobuf.ByteString generatePayloadProto2(int 
payloadSizeBytes) {
-    return ProtoUtils.unsafeByteString(generatePayload(payloadSizeBytes));
+    byte[] payload = generatePayload(payloadSizeBytes);
+    return payload.length > 0 ? 
com.google.protobuf.UnsafeByteOperations.unsafeWrap(payload)
+        : com.google.protobuf.ByteString.EMPTY;
   }
 
   public static ByteString generatePayloadProto3(int payloadSizeBytes) {


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

Reply via email to