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

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

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

Loading…
Cancel
Save