From 5e8ed21a37a3c5903117ca4bb373e46e0cc1e642 Mon Sep 17 00:00:00 2001 From: bsglz <18031031@qq.com> Date: Mon, 8 Jun 2020 18:48:33 +0800 Subject: [PATCH] HBASE-24483 Add repeated prefix logging for MultipleColumnPrefixFilter (#1822) Signed-off-by: clarax Signed-off-by: Viraj Jasani --- .../hbase/filter/MultipleColumnPrefixFilter.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java index 5fd64451a45..0585f55d175 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java @@ -32,6 +32,8 @@ import org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferExce import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations; import org.apache.hadoop.hbase.shaded.protobuf.generated.FilterProtos; import org.apache.hadoop.hbase.util.Bytes; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This filter is used for selecting only those keys with columns that matches @@ -40,15 +42,18 @@ import org.apache.hadoop.hbase.util.Bytes; */ @InterfaceAudience.Public public class MultipleColumnPrefixFilter extends FilterBase { + private static final Logger LOG = LoggerFactory.getLogger(MultipleColumnPrefixFilter.class); protected byte [] hint = null; protected TreeSet sortedPrefixes = createTreeSet(); private final static int MAX_LOG_PREFIXES = 5; public MultipleColumnPrefixFilter(final byte [][] prefixes) { if (prefixes != null) { - for (int i = 0; i < prefixes.length; i++) { - if (!sortedPrefixes.add(prefixes[i])) - throw new IllegalArgumentException ("prefixes must be distinct"); + for (byte[] prefix : prefixes) { + if (!sortedPrefixes.add(prefix)) { + LOG.error("prefix {} is repeated", Bytes.toString(prefix)); + throw new IllegalArgumentException("prefixes must be distinct"); + } } } }