From 3f38dcd3f9a7bab634cc992048059a1961a0c84f Mon Sep 17 00:00:00 2001 From: LiangJun He <2005hithlj@163.com> Date: Tue, 13 Sep 2022 23:52:01 +0800 Subject: [PATCH 1/2] HBASE-27369 BufferedMutator#mutate supports mutation type verification --- .../hbase/client/BufferedMutatorOverAsyncBufferedMutator.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorOverAsyncBufferedMutator.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorOverAsyncBufferedMutator.java index 72692eac59e5..483697f760d8 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorOverAsyncBufferedMutator.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorOverAsyncBufferedMutator.java @@ -76,6 +76,9 @@ public Configuration getConfiguration() { @Override public void mutate(Mutation mutation) throws IOException { + if (!(mutation instanceof Put) && !(mutation instanceof Delete)) { + throw new IOException("Only supports Put and Delete mutation"); + } mutate(Collections.singletonList(mutation)); } From 8a960d3ccdbedd0bb637d87d0c6669020335e03a Mon Sep 17 00:00:00 2001 From: LiangJun He <2005hithlj@163.com> Date: Thu, 15 Sep 2022 09:11:08 +0800 Subject: [PATCH 2/2] HBASE-27369 BufferedMutator#mutate supports mutation type verification --- .../org/apache/hadoop/hbase/client/AsyncBufferedMutator.java | 3 +++ .../hbase/client/BufferedMutatorOverAsyncBufferedMutator.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncBufferedMutator.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncBufferedMutator.java index e5f28d2e0602..b9c332ce5be3 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncBufferedMutator.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncBufferedMutator.java @@ -56,6 +56,9 @@ public interface AsyncBufferedMutator extends Closeable { * @param mutation The data to send. */ default CompletableFuture mutate(Mutation mutation) { + if (!(mutation instanceof Put) && !(mutation instanceof Delete)) { + throw new UnsupportedOperationException("Only supports Put and Delete mutation"); + } return Iterables.getOnlyElement(mutate(Collections.singletonList(mutation))); } diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorOverAsyncBufferedMutator.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorOverAsyncBufferedMutator.java index 483697f760d8..a3649f17b081 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorOverAsyncBufferedMutator.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/BufferedMutatorOverAsyncBufferedMutator.java @@ -77,7 +77,7 @@ public Configuration getConfiguration() { @Override public void mutate(Mutation mutation) throws IOException { if (!(mutation instanceof Put) && !(mutation instanceof Delete)) { - throw new IOException("Only supports Put and Delete mutation"); + throw new UnsupportedOperationException("Only supports Put and Delete mutation"); } mutate(Collections.singletonList(mutation)); }