diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/BitsCronField.java b/spring-context/src/main/java/org/springframework/scheduling/support/BitsCronField.java index f000472333..b0e6a8b32a 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/BitsCronField.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/BitsCronField.java @@ -130,8 +130,8 @@ final class BitsCronField extends CronField { result.setBits(range); } else { - String rangeStr = value.substring(0, slashPos); - String deltaStr = value.substring(slashPos + 1); + String rangeStr = field.substring(0, slashPos); + String deltaStr = field.substring(slashPos + 1); ValueRange range = parseRange(rangeStr, type); if (rangeStr.indexOf('-') == -1) { range = ValueRange.of(range.getMinimum(), type.range().getMaximum()); diff --git a/spring-context/src/test/java/org/springframework/scheduling/support/BitsCronFieldTests.java b/spring-context/src/test/java/org/springframework/scheduling/support/BitsCronFieldTests.java index fa99c5ef61..906e98ea52 100644 --- a/spring-context/src/test/java/org/springframework/scheduling/support/BitsCronFieldTests.java +++ b/spring-context/src/test/java/org/springframework/scheduling/support/BitsCronFieldTests.java @@ -58,6 +58,14 @@ class BitsCronFieldTests { assertThat(BitsCronField.parseDaysOfMonth("1,2,3")).has(set(1, 2, 3)).has(clearRange(4, 31)); assertThat(BitsCronField.parseMonth("1,2,3")).has(set(1, 2, 3)).has(clearRange(4, 12)); assertThat(BitsCronField.parseDaysOfWeek("1,2,3")).has(set(1, 2, 3)).has(clearRange(4, 7)); + + assertThat(BitsCronField.parseMinutes("5,10-30/2")) + .has(clearRange(0, 5)) + .has(set(5)) + .has(clearRange(6,10)) + .has(set(10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30)) + .has(clear(11, 13, 15, 17, 19, 21, 23, 25, 27, 29)) + .has(clearRange(31, 60)); } @Test