diff --git a/src/java.base/share/classes/java/util/regex/Pattern.java b/src/java.base/share/classes/java/util/regex/Pattern.java index ab5229a70f6..37ffaaf9d1c 100644 --- a/src/java.base/share/classes/java/util/regex/Pattern.java +++ b/src/java.base/share/classes/java/util/regex/Pattern.java @@ -1678,7 +1678,13 @@ loop: for(int x=0, offset=0; x= 5g + * @run main/othervm NegativeArraySize -Xms5G -Xmx5G + */ + +import java.util.regex.Pattern; + +public class NegativeArraySize { + public static void main(String[] args) { + try { + Pattern.compile("\\Q" + "a".repeat(42 + Integer.MAX_VALUE / 3)); + throw new AssertionError("expected to throw"); + } catch (OutOfMemoryError expected) { + } + } +}