diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/profile/ConditionParser.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/profile/ConditionParser.java index f596946aa253..b20d621c9564 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/profile/ConditionParser.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/profile/ConditionParser.java @@ -129,8 +129,8 @@ private List tokenize(String expression) { } quoteType = c; sb.append(c); - } else if (c == ' ' || c == '(' || c == ')' || c == ',' || c == '+' || c == '>' || c == '<' || c == '=' - || c == '!') { + } else if (c == ' ' || c == '(' || c == ')' || c == ',' || c == '+' || c == '-' || c == '*' || c == '/' + || c == '>' || c == '<' || c == '=' || c == '!') { if (!sb.isEmpty()) { tokens.add(sb.toString()); sb.setLength(0); diff --git a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/profile/ConditionParserTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/profile/ConditionParserTest.java index 56d2cbb3aec9..7dd9559f865b 100644 --- a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/profile/ConditionParserTest.java +++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/profile/ConditionParserTest.java @@ -242,6 +242,18 @@ void testArithmeticFunctions() { assertEquals(2.5, parser.parse("5 / 2")); } + @Test + void testArithmeticWithoutSpaces() { + assertEquals(5.0, parser.parse("2+3")); + assertEquals(10.0, parser.parse("15-5")); + assertEquals(24.0, parser.parse("6*4")); + assertEquals(3.0, parser.parse("9/3")); + assertEquals(14.0, parser.parse("2+3*4")); + assertEquals(20.0, parser.parse("(2+3)*4")); + assertEquals(-5.0, parser.parse("-5")); + assertEquals(-5.0, parser.parse("-(2+3)")); + } + @Test void testCombinedArithmeticAndLogic() { assertTrue((Boolean) parser.parse("(5 > 3) && (10 / 2 == 5)"));