
|
If you were logged in you would be able to see more operations.
|
|
|
|
The code for the "updateWithNewCalendar" method in "CronTrigger" and "SimpleTrigger" in the 1.06 release doesn't look right. It may set the "nextFireTime" field to something that is NOT included in the passed calendar. The code reads as follows: (I have no idea why anyone may use a loop that clearly iterates only once..) If the
misfire condition is true, the value assigned to the "nextFireTime" won't be checked by the calendar.
{
nextFireTime = getFireTimeAfter(previousFireTime);
Date now = new Date();
do {
while (nextFireTime != null && calendar != null
&& !calendar.isTimeIncluded(nextFireTime.getTime())) {
nextFireTime = getFireTimeAfter(nextFireTime);
}
if(nextFireTime != null && nextFireTime.before(now)) {
long diff = now.getTime() - nextFireTime.getTime();
if(diff >= misfireThreshold) {
nextFireTime = getFireTimeAfter(nextFireTime);
continue;
}
}
}while(false);
}
|
|
Description
|
The code for the "updateWithNewCalendar" method in "CronTrigger" and "SimpleTrigger" in the 1.06 release doesn't look right. It may set the "nextFireTime" field to something that is NOT included in the passed calendar. The code reads as follows: (I have no idea why anyone may use a loop that clearly iterates only once..) If the
misfire condition is true, the value assigned to the "nextFireTime" won't be checked by the calendar.
{
nextFireTime = getFireTimeAfter(previousFireTime);
Date now = new Date();
do {
while (nextFireTime != null && calendar != null
&& !calendar.isTimeIncluded(nextFireTime.getTime())) {
nextFireTime = getFireTimeAfter(nextFireTime);
}
if(nextFireTime != null && nextFireTime.before(now)) {
long diff = now.getTime() - nextFireTime.getTime();
if(diff >= misfireThreshold) {
nextFireTime = getFireTimeAfter(nextFireTime);
continue;
}
}
}while(false);
}
|
Show » |
|
QUARTZ-557