From b632bd601c9832cc1e662add75ebc6e60db736ee Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Thu, 7 Mar 2013 17:49:19 +0400 Subject: [PATCH] XmlLanguageInjector: do not create Patterns for empty regex --- .../intelliLang/inject/xml/XmlLanguageInjector.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/IntelliLang/xml-support/org/intellij/plugins/intelliLang/inject/xml/XmlLanguageInjector.java b/plugins/IntelliLang/xml-support/org/intellij/plugins/intelliLang/inject/xml/XmlLanguageInjector.java index 78d443bd4773..a05a24426dc9 100644 --- a/plugins/IntelliLang/xml-support/org/intellij/plugins/intelliLang/inject/xml/XmlLanguageInjector.java +++ b/plugins/IntelliLang/xml-support/org/intellij/plugins/intelliLang/inject/xml/XmlLanguageInjector.java @@ -41,6 +41,7 @@ import org.intellij.plugins.intelliLang.inject.config.AbstractTagInjection; import org.intellij.plugins.intelliLang.inject.config.BaseInjection; import org.intellij.plugins.intelliLang.inject.config.InjectionPlace; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.*; import java.util.regex.Pattern; @@ -227,8 +228,8 @@ public final class XmlLanguageInjector implements MultiHostInjector { private static boolean areThereInjectionsWithText(final String text, Trinity> index) { if (text == null) return false; if (index.third.contains(text)) return true; - if (index.second.matcher(text).matches()) return true; - return false; + Pattern pattern = index.second; + return pattern != null && pattern.matcher(text).matches(); } private Trinity> getXmlAnnotatedElementsValue() { @@ -248,6 +249,7 @@ public final class XmlLanguageInjector implements MultiHostInjector { return index; } + @Nullable private static Pattern buildPattern(Collection stringSet) { final StringBuilder sb = new StringBuilder(); for (String s : stringSet) { @@ -255,7 +257,7 @@ public final class XmlLanguageInjector implements MultiHostInjector { if (sb.length() > 0) sb.append('|'); sb.append("(?:").append(s).append(")"); } - return Pattern.compile(sb.toString()); + return sb.length() == 0 ? null : Pattern.compile(sb.toString()); } }