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

ndimiduk pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-3 by this push:
     new 30cae7a1ef0 HBASE-29204: BufferedMutatorParams#clone() should copy the 
requestAttributes field (#6823)
30cae7a1ef0 is described below

commit 30cae7a1ef019eb9b70656599ec352480cff07e5
Author: Charles Connell <[email protected]>
AuthorDate: Fri Apr 25 05:17:17 2025 -0400

    HBASE-29204: BufferedMutatorParams#clone() should copy the 
requestAttributes field (#6823)
    
    Signed-off-by: Duo Zhang <[email protected]>
    Signed-off-by: Pankaj <[email protected]>
---
 .../java/org/apache/hadoop/hbase/client/BufferedMutatorParams.java   | 3 +++
 .../org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java    | 5 ++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorParams.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorParams.java
index 88cc062b5bc..550d13033cb 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorParams.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorParams.java
@@ -24,6 +24,8 @@ import java.util.concurrent.ExecutorService;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.yetus.audience.InterfaceAudience;
 
+import org.apache.hbase.thirdparty.com.google.common.collect.Maps;
+
 /**
  * Parameters for instantiating a {@link BufferedMutator}.
  */
@@ -241,6 +243,7 @@ public class BufferedMutatorParams implements Cloneable {
     clone.writeBufferPeriodicFlushTimerTickMs = 
this.writeBufferPeriodicFlushTimerTickMs;
     clone.maxKeyValueSize = this.maxKeyValueSize;
     clone.maxMutations = this.maxMutations;
+    clone.requestAttributes = Maps.newHashMap(this.requestAttributes);
     clone.pool = this.pool;
     clone.listener = this.listener;
     clone.implementationClassName = this.implementationClassName;
diff --git 
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java
 
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java
index fdc7c305500..b6c52a0cd0d 100644
--- 
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java
+++ 
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.Callable;
@@ -141,7 +142,8 @@ public class TestBufferedMutatorParams {
     BufferedMutator.ExceptionListener listener = new MockExceptionListener();
     bmp.writeBufferSize(17).setWriteBufferPeriodicFlushTimeoutMs(123)
       
.setWriteBufferPeriodicFlushTimerTickMs(456).maxKeyValueSize(13).setMaxMutations(3737)
-      .pool(pool).listener(listener);
+      .setRequestAttribute("foo", 
"bar".getBytes(StandardCharsets.UTF_8)).pool(pool)
+      .listener(listener);
     bmp.implementationClassName("someClassName");
     BufferedMutatorParams clone = bmp.clone();
 
@@ -180,6 +182,7 @@ public class TestBufferedMutatorParams {
       clone.getWriteBufferPeriodicFlushTimerTickMs());
     assertEquals(some.getMaxKeyValueSize(), clone.getMaxKeyValueSize());
     assertTrue(some.getMaxMutations() == clone.getMaxMutations());
+    assertEquals(some.requestAttributes, clone.requestAttributes);
     assertTrue(some.getListener() == clone.getListener());
     assertTrue(some.getPool() == clone.getPool());
     assertEquals(some.getImplementationClassName(), 
clone.getImplementationClassName());

Reply via email to