return when.getTime();
Date timerDate = when.getTime(); if (timerDate.getTime() < System.currentTimeMillis() && !m_allowStaleDate) {  timerDate.setTime(timerDate.getTime() + getTimerPeriod()); }  return timerDate;
    Date getTimerDate() {                // convert thru string because setting timezone just shift time and        // we want effectively the same time.          String gmtTimeOfDay = GMT_TIME_OF_DAY_FORMAT.format(getTimeOfDay());        try {            Date localTimeOfDay = LOCAL_TIME_OF_DAY_FORMAT.parse(gmtTimeOfDay);            Calendar localCal = Calendar.getInstance();            localCal.setTime(localTimeOfDay);                        Calendar when = Calendar.getInstance();            when.set(Calendar.HOUR_OF_DAY, localCal.get(Calendar.HOUR_OF_DAY));            when.set(Calendar.MINUTE, localCal.get(Calendar.MINUTE));            when.set(Calendar.SECOND, 0);            when.set(Calendar.MILLISECOND, 0);                        if (m_day != ScheduledDay.EVERYDAY) {                when.set(Calendar.DAY_OF_WEEK, getScheduledDay().getDayOfWeek());            }                        return when.getTime();                } catch (ParseException e) {            throw new RuntimeException(e);        }            }