diff --git a/core/src/main/java/org/apache/struts2/util/ComponentUtils.java b/core/src/main/java/org/apache/struts2/util/ComponentUtils.java index 01fbcd9be..054038f00 100644 --- a/core/src/main/java/org/apache/struts2/util/ComponentUtils.java +++ b/core/src/main/java/org/apache/struts2/util/ComponentUtils.java @@ -44,11 +44,11 @@ public class ComponentUtils { * @return true if it is an expression */ public static boolean isExpression(String expr) { - return expr.startsWith("%{") && expr.endsWith("}"); + return expr != null && expr.startsWith("%{") && expr.endsWith("}"); } public static boolean containsExpression(String expr) { - return expr.contains("%{") && expr.contains("}"); + return expr != null && expr.contains("%{") && expr.contains("}"); } } diff --git a/core/src/test/java/org/apache/struts2/util/ComponentUtilsTest.java b/core/src/test/java/org/apache/struts2/util/ComponentUtilsTest.java index 095176a75..1e05ebdfa 100644 --- a/core/src/test/java/org/apache/struts2/util/ComponentUtilsTest.java +++ b/core/src/test/java/org/apache/struts2/util/ComponentUtilsTest.java @@ -93,6 +93,10 @@ public class ComponentUtilsTest extends StrutsInternalTestCase { assertFalse(actual); } + public void testIsExpressionIsFalseWhenNull() throws Exception { + assertFalse(ComponentUtils.isExpression(null)); + } + public void testContainsExpressionIsTrue() throws Exception { // given String anExpression = "%{foo}"; @@ -125,6 +129,10 @@ public class ComponentUtilsTest extends StrutsInternalTestCase { // then assertFalse(actual); } + + public void testContainsExpressionIsFalseWhenNull() throws Exception { + assertFalse(ComponentUtils.containsExpression(null)); + } } class MockConfigurationProvider implements ConfigurationProvider {