From 12bb5ff595870928eec5965db2ac718339752c3e Mon Sep 17 00:00:00 2001 From: Nick Dimiduk Date: Thu, 25 Jun 2020 11:09:58 -0700 Subject: [PATCH] HBASE-22504 Addendum: restore findCommonPrefix Address incompatibility issue raised in 2.3.0RC0 vote thread. --- .../hadoop/hbase/util/ByteBufferUtils.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ByteBufferUtils.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ByteBufferUtils.java index e29ead5a16cc..ae87e32d7819 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ByteBufferUtils.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ByteBufferUtils.java @@ -737,6 +737,28 @@ public static void copyFromBufferToBuffer(ByteBuffer in, ByteBuffer out, int sou } } + /** + * Find length of common prefix of two parts in the buffer + * @param buffer Where parts are located. + * @param offsetLeft Offset of the first part. + * @param offsetRight Offset of the second part. + * @param limit Maximal length of common prefix. + * @return Length of prefix. + */ + @SuppressWarnings("unused") + public static int findCommonPrefix(ByteBuffer buffer, int offsetLeft, + int offsetRight, int limit) { + int prefix = 0; + + for (; prefix < limit; ++prefix) { + if (buffer.get(offsetLeft + prefix) != buffer.get(offsetRight + prefix)) { + break; + } + } + + return prefix; + } + /** * Find length of common prefix in two arrays. * @param left Array to be compared.