From 6d38db0798fad4bb4eb5c1b635afb6bbd72218c0 Mon Sep 17 00:00:00 2001 From: pblundell Date: Fri, 5 Jun 2026 09:50:11 +0100 Subject: [PATCH] fix: escape closing brace in TemplateProcessing regex for Android ICU compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Android's regex engine (com.android.icu.util.regex.PatternNative) is stricter than the JVM's java.util.regex.Pattern and rejects unescaped '}' with a PatternSyntaxException. Since this regex is compiled in a static initializer, the class is permanently poisoned and every subsequent call to LaunchImpl.startTestItem() fails with ExceptionInInitializerError. Escaping the '}' as '\}' is valid on both JVM and Android ICU — no behavioural change for non-Android consumers. Fixes #322 --- .../utils/formatting/templating/TemplateProcessing.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/epam/reportportal/utils/formatting/templating/TemplateProcessing.java b/src/main/java/com/epam/reportportal/utils/formatting/templating/TemplateProcessing.java index daddaa8c..4f5ddd3c 100644 --- a/src/main/java/com/epam/reportportal/utils/formatting/templating/TemplateProcessing.java +++ b/src/main/java/com/epam/reportportal/utils/formatting/templating/TemplateProcessing.java @@ -40,7 +40,7 @@ public class TemplateProcessing { public static final String NULL_VALUE = "NULL"; - private static final Pattern TEMPLATE_GROUP = Pattern.compile("\\{([\\w$]+(\\.[\\w$]+)*)}"); + private static final Pattern TEMPLATE_GROUP = Pattern.compile("\\{([\\w$]+(\\.[\\w$]+)*)\\}"); private TemplateProcessing() { throw new IllegalStateException("Static only class");