Skip to content

Commit 762cf0f

Browse files
committed
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
1 parent 3dc4f43 commit 762cf0f

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ private static BitsCronField parseField(String value, Type type) {
150150
}
151151

152152
private static ValueRange parseRange(String value, Type type) {
153-
if (value.indexOf('*') != -1) {
153+
if (value.equals("*")) {
154154
return type.range();
155155
}
156156
else {

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ void invalidRange() {
4848
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseMonth("13"));
4949
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseDaysOfWeek("8"));
5050
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseSeconds("20-10"));
51+
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseDaysOfWeek("*SUN"));
52+
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseDaysOfWeek("SUN*"));
53+
assertThatIllegalArgumentException().isThrownBy(() -> BitsCronField.parseHours("*ANYTHING_HERE"));
5154
}
5255

5356
@Test

0 commit comments

Comments
 (0)