When trying to schedule execution of an EJB 3.1 timer e.g. with the following rule:
Every 3rd of a month between 00:00 till 12:00 every 5 minutes starting from 03.06.2013. The execution time is calculated incorrectly.
The first execution should be started on 03.07.2013 at 00:00, instead it starts at 03.07.2013 at 10:15, note: in the given example current time is 10:10. For some reason the TimerService takes into account the current locale time, although it should be irrelevant in such case.
Example code is attached, when execute the following output is produced:
Current time: Thu Jun 06 10:10:57 CEST 2013
Next execution time: Wed Jul 03 10:15:00 CEST 2013
When the same code is executed on glassfish the following (IMHO correct) output is produced:
Current time: Thu Jun 06 10:09:26 CEST 2013
Next execution time: Wed Jul 03 00:00:00 CEST 2013