Affects: spring-context:5.3.4
Hi...
IMHO
org.springframework.scheduling.support.CronExpression.parse(
org.springframework.scheduling.annotation.Scheduled.CRON_DISABLED);
should not throw java.lang.IllegalArgumentException.
Comment From: poutsma
Why? CronExpression
represents a cron expression, whereas Scheduled.CRON_DISABLED
represents an annotation value used to disable cron expressions altogether.
Comment From: schapsl
Because the annotation value of cron
in org.springframework.scheduling.annotation.Scheduled
a.k.a @Scheduled
accepts a cron expression as well as Scheduled.CRON_DISABLED
So basically Scheduled.CRON_DISABLED
is a valid cron expression in the context of @Scheduled
. Not accepting it in org.springframework.scheduling.support.CronExpression.parse
is inconsistent imho.
My use case is to allow @Scheduled( cron = ${myProperty})
, where it should be possible to turn of the trigger. I'm quite happy Scheduled.CRON_DISABLED
exists. But i also like use CronExpression.parse
in a different location.
Comment From: poutsma
So basically Scheduled.CRON_DISABLED is a valid cron expression in the context of
@Scheduled
.
Indeed, it is a valid value in that context/module, because of way we use annotations to configure scheduling support. But CronExpression
is a low-level component that knows nothing about annotations. And from the perspective of CronExpression
, CRON_DISABLED
(i.e. -
) is simply not a valid expression.