Skip to content

Commit b90b0cc

Browse files
charlesconnellndimiduk
authored andcommitted
HBASE-29204: BufferedMutatorParams#clone() should copy the requestAttributes field (#6823)
Signed-off-by: Duo Zhang <[email protected]> Signed-off-by: Pankaj <[email protected]>
1 parent c78362d commit b90b0cc

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorParams.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import org.apache.hadoop.hbase.TableName;
2525
import org.apache.yetus.audience.InterfaceAudience;
2626

27+
import org.apache.hbase.thirdparty.com.google.common.collect.Maps;
28+
2729
/**
2830
* Parameters for instantiating a {@link BufferedMutator}.
2931
*/
@@ -223,6 +225,7 @@ public BufferedMutatorParams clone() {
223225
clone.writeBufferPeriodicFlushTimerTickMs = this.writeBufferPeriodicFlushTimerTickMs;
224226
clone.maxKeyValueSize = this.maxKeyValueSize;
225227
clone.maxMutations = this.maxMutations;
228+
clone.requestAttributes = Maps.newHashMap(this.requestAttributes);
226229
clone.pool = this.pool;
227230
clone.listener = this.listener;
228231
clone.implementationClassName = this.implementationClassName;

hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestBufferedMutatorParams.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static org.junit.Assert.assertFalse;
2222
import static org.junit.Assert.assertTrue;
2323

24+
import java.nio.charset.StandardCharsets;
2425
import java.util.Collection;
2526
import java.util.List;
2627
import java.util.concurrent.Callable;
@@ -141,7 +142,8 @@ public void testClone() {
141142
BufferedMutator.ExceptionListener listener = new MockExceptionListener();
142143
bmp.writeBufferSize(17).setWriteBufferPeriodicFlushTimeoutMs(123)
143144
.setWriteBufferPeriodicFlushTimerTickMs(456).maxKeyValueSize(13).setMaxMutations(3737)
144-
.pool(pool).listener(listener);
145+
.setRequestAttribute("foo", "bar".getBytes(StandardCharsets.UTF_8)).pool(pool)
146+
.listener(listener);
145147
bmp.implementationClassName("someClassName");
146148
BufferedMutatorParams clone = bmp.clone();
147149

@@ -180,6 +182,7 @@ private void cloneTest(BufferedMutatorParams some, BufferedMutatorParams clone)
180182
clone.getWriteBufferPeriodicFlushTimerTickMs());
181183
assertEquals(some.getMaxKeyValueSize(), clone.getMaxKeyValueSize());
182184
assertTrue(some.getMaxMutations() == clone.getMaxMutations());
185+
assertEquals(some.requestAttributes, clone.requestAttributes);
183186
assertTrue(some.getListener() == clone.getListener());
184187
assertTrue(some.getPool() == clone.getPool());
185188
assertEquals(some.getImplementationClassName(), clone.getImplementationClassName());

0 commit comments

Comments
 (0)