src/java.base/share/classes/java/util/regex/Pattern.java
changeset 58111 f63f50a4bf43
parent 57956 e0b8b019d2f5
child 58288 48e480e56aad
--- a/src/java.base/share/classes/java/util/regex/Pattern.java	Thu Sep 12 09:59:19 2019 -0700
+++ b/src/java.base/share/classes/java/util/regex/Pattern.java	Thu Sep 12 11:07:35 2019 -0700
@@ -3931,12 +3931,14 @@
         boolean match(Matcher matcher, int i, CharSequence seq) {
             if (i < matcher.to) {
                 int ch = Character.codePointAt(seq, i);
-                return predicate.is(ch) &&
-                       next.match(matcher, i + Character.charCount(ch), seq);
-            } else {
-                matcher.hitEnd = true;
-                return false;
+                i += Character.charCount(ch);
+                if (i <= matcher.to) {
+                    return predicate.is(ch) &&
+                           next.match(matcher, i, seq);
+                }
             }
+            matcher.hitEnd = true;
+            return false;
         }
         boolean study(TreeInfo info) {
             info.minLength++;