protected void callTimeout() throws Exception {
CalendarTimer calendarTimer = this.getTimer();
// if we have any more schedules remaining, then schedule a new task
if (calendarTimer.getNextExpiration() != null && !calendarTimer.isInRetry()) {
calendarTimer.scheduleTimeout();
}
// finally invoke the timeout method through the invoker
if (calendarTimer.isAutoTimer()) {
TimedObjectInvoker invoker = this.timerService.getInvoker();