This is an automated email from the ASF dual-hosted git repository.
apurtell pushed a commit to branch branch-2.5
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.5 by this push:
new ee56bcafb4b HBASE-27219 Change JONI encoding in RegexStringComparator
(#4632)
ee56bcafb4b is described below
commit ee56bcafb4b98e60323963a0447f4cb747d3f5c7
Author: Minwoo Kang <[email protected]>
AuthorDate: Wed Jul 20 01:10:38 2022 +0900
HBASE-27219 Change JONI encoding in RegexStringComparator (#4632)
Signed-off-by: Andrew Purtell <[email protected]>
---
.../java/org/apache/hadoop/hbase/filter/RegexStringComparator.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git
a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RegexStringComparator.java
b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RegexStringComparator.java
index 6841c80194a..4bdc057bd9e 100644
---
a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RegexStringComparator.java
+++
b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/RegexStringComparator.java
@@ -26,7 +26,7 @@ import org.apache.hadoop.hbase.util.Bytes;
import org.apache.yetus.audience.InterfaceAudience;
import org.jcodings.Encoding;
import org.jcodings.EncodingDB;
-import org.jcodings.specific.UTF8Encoding;
+import org.jcodings.specific.NonStrictUTF8Encoding;
import org.joni.Matcher;
import org.joni.Option;
import org.joni.Regex;
@@ -312,7 +312,9 @@ public class RegexStringComparator extends
ByteArrayComparable {
* NOTE: Only the {@link Pattern} flags CASE_INSENSITIVE, DOTALL, and
MULTILINE are supported.
*/
static class JoniRegexEngine implements Engine {
- private Encoding encoding = UTF8Encoding.INSTANCE;
+ // When using UTF8Encoding, an infinite loop can occur if an invalid UTF8
is encountered.
+ // Use NonStrictUTF8Encoding instead of UTF8Encoding to avoid the issue.
+ private Encoding encoding = NonStrictUTF8Encoding.INSTANCE;
private String regex;
private Regex pattern;