diff --git a/src/test/java/org/jsoup/helper/RegexTest.java b/src/test/java/org/jsoup/helper/RegexTest.java index c3661c91ca..6a96206654 100644 --- a/src/test/java/org/jsoup/helper/RegexTest.java +++ b/src/test/java/org/jsoup/helper/RegexTest.java @@ -61,14 +61,18 @@ void re2jRejectsBackreferenceThrows() { } @Test - void re2jSelectorMatchComplexityThrowsValidationException() { + void re2jSelectorHandlesMatchComplexity() { Regex.wantsRe2j(true); assertTrue(Regex.usingRe2j()); Document doc = Jsoup.parse("

"); Evaluator evaluator = Selector.evaluatorOf("[data-key~=((a|)){1000}]"); // max repeat and empty alternatives create deep recursion in RE2J - ValidationException exception = assertThrows(ValidationException.class, () -> doc.select(evaluator)); - assertEquals("Pattern complexity error", exception.getMessage()); + try { + assertEquals(1, doc.select(evaluator).size()); + } catch (ValidationException e) { + // pom defines a lower stack, so this normalized ex is normally thrown + assertEquals("Pattern complexity error", e.getMessage()); + } } @ParameterizedTest