Browse Source

Check for asterisk range in CronExpression

This commit makes sure that in CronExpression, the asterisk is only used
in a range field, and is not surrounded by unexpected characters.

Closes gh-19500
pull/25528/head
Arjen Poutsma 6 years ago
parent
commit
762cf0ffe8
  1. 2
      spring-context/src/main/java/org/springframework/scheduling/support/BitsCronField.java
  2. 3
      spring-context/src/test/java/org/springframework/scheduling/support/BitsCronFieldTests.java

2
spring-context/src/main/java/org/springframework/scheduling/support/BitsCronField.java

@ -150,7 +150,7 @@ final class BitsCronField extends CronField {
} }
private static ValueRange parseRange(String value, Type type) { private static ValueRange parseRange(String value, Type type) {
if (value.indexOf('*') != -1) { if (value.equals("*")) {
return type.range(); return type.range();
} }
else { else {

3
spring-context/src/test/java/org/springframework/scheduling/support/BitsCronFieldTests.java

@ -48,6 +48,9 @@ public class BitsCronFieldTests {
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseMonth("13")); assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseMonth("13"));
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseDaysOfWeek("8")); assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseDaysOfWeek("8"));
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseSeconds("20-10")); assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseSeconds("20-10"));
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseDaysOfWeek("*SUN"));
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseDaysOfWeek("SUN*"));
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseHours("*ANYTHING_HERE"));
} }
@Test @Test

Loading…
Cancel
Save