Rafael Fuentes created AMQ-6217: ----------------------------------- Summary: CronParser.getNextScheduledTime() with dayOfMonth and dayOfWeek Key: AMQ-6217 URL: https://issues.apache.org/jira/browse/AMQ-6217 Project: ActiveMQ Issue Type: Bug Components: Broker Affects Versions: 5.13.2, 5.12.2 Environment: Windows Java 1.8 Reporter: Rafael Fuentes
When we try to get several “NextSecheduledTime” for a cron string that have set the “day of month” and the “day of week “at the same time, CronParser returns “days of month” that do not match with the defined “days of week”. For example: public static void main(String[] args){ try { DateFormat format = new SimpleDateFormat("yyyy/MM/dd"); Date executionDate = format.parse("2016/09/11"); Date end = format.parse("2016/10/31"); String cron ="45 6 1,2,3,4,5,6,7,8,9,10,11 * 1,2,3,4,5"; executionDate = new Date(CronParser.getNextScheduledTime(cron, executionDate.getTime())); while (executionDate.compareTo(end) < 0) { System.out.println(executionDate); executionDate = new Date(CronParser.getNextScheduledTime(cron, executionDate.getTime())); } } catch(Exception e) { e.printStackTrace(); } } This outputs: Sun Oct 02 06:45:00 CEST 2016 Mon Oct 03 06:45:00 CEST 2016 Tue Oct 04 06:45:00 CEST 2016 Wed Oct 05 06:45:00 CEST 2016 Thu Oct 06 06:45:00 CEST 2016 Fri Oct 07 06:45:00 CEST 2016 Mon Oct 10 06:45:00 CEST 2016 Tue Oct 11 06:45:00 CEST 2016 Cron string defines “Monday to Friday” but CronParser returns “Sunday”. I think it shouldn’t return Sunday, it should start on Mon Oct 03. -- This message was sent by Atlassian JIRA (v6.3.4#6332)