You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ge...@apache.org on 2011/07/27 18:13:00 UTC
svn commit: r1151522 - in /openejb/trunk/openejb3/container/openejb-core/src:
main/java/org/apache/openejb/core/timer/EJBCronTrigger.java
test/java/org/apache/openejb/timer/EJBCronTriggerTest.java
Author: genspring
Date: Wed Jul 27 16:12:59 2011
New Revision: 1151522
URL: http://svn.apache.org/viewvc?rev=1151522&view=rev
Log:
additional "both dayOfWeek and dayOfMonth" boundary condition.
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/timer/EJBCronTriggerTest.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java?rev=1151522&r1=1151521&r2=1151522&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java Wed Jul 27 16:12:59 2011
@@ -474,14 +474,15 @@ public class EJBCronTrigger extends Trig
if (value == null) {
value = newDayOfMonth;
- } else {
+ } else if (clonedCalendarDayOfWeek.get(expressions[1].field)==calendar.get(expressions[1].field)){
value = Math.min(value, newDayOfMonth);
- }
- //Next valid DayOfWeek might exist in next month.
+ }
+ //Next valid DayOfWeek might exist in next month.
if(expressions[1].getNextValue(clonedCalendarDayOfWeek)==null){
return null;
- }else {
+ } else if (value != calendar.get(expressions[2].field)
+ && clonedCalendarDayOfWeek.get(expressions[1].field) > calendar.get(expressions[1].field)) {
calendar.set(Calendar.MONTH, clonedCalendarDayOfWeek.get(Calendar.MONTH));
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/timer/EJBCronTriggerTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/timer/EJBCronTriggerTest.java?rev=1151522&r1=1151521&r2=1151522&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/timer/EJBCronTriggerTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/timer/EJBCronTriggerTest.java Wed Jul 27 16:12:59 2011
@@ -162,8 +162,6 @@ public class EJBCronTriggerTest {
ScheduleExpression expr = new ScheduleExpression().year(2011).dayOfMonth("19").dayOfWeek("3").hour(23).minute(59).second(58).start(new GregorianCalendar(2011, 4, 18, 23, 59, 58).getTime());
EJBCronTrigger trigger = new EJBCronTrigger(expr);
assertEquals(new GregorianCalendar(2011, 4, 19, 23, 59, 58).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 4, 18, 23, 59, 59).getTime()));
-
- System.out.println(trigger.getNextFireTime());
}
@Test(timeout = 5000)
@@ -172,19 +170,23 @@ public class EJBCronTriggerTest {
EJBCronTrigger trigger = new EJBCronTrigger(expr);
assertEquals(new GregorianCalendar(2011, 4, 18, 20, 59, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 4, 18, 20, 59, 58).getTime()));
assertEquals(new GregorianCalendar(2011, 4, 19, 20, 59, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 4, 18, 20, 59, 59).getTime()));
-
- System.out.println(trigger.getNextFireTime());
}
- @Test(timeout = 5000000)
+ @Test(timeout = 5000)
public void testBothDayOfMonthAndDayOfWeekG() throws ParseException {
ScheduleExpression expr = new ScheduleExpression().year(2011).dayOfMonth("12").dayOfWeek("6").hour(20).minute(59).second(59).start(new GregorianCalendar(2011, 5, 11, 20, 59, 58).getTime());
EJBCronTrigger trigger = new EJBCronTrigger(expr);
//assertEquals(new GregorianCalendar(2011, 5, 11, 20, 59, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 5, 11, 20, 59, 58).getTime()));
assertEquals(new GregorianCalendar(2011, 5, 12, 20, 59, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 5, 11, 20, 59, 59).getTime()));
-
- System.out.println(trigger.getNextFireTime());
- }
+ }
+
+
+ @Test(timeout = 5000)
+ public void testBothDayOfMonthAndDayOfWeekH() throws ParseException {
+ ScheduleExpression expr = new ScheduleExpression().year(2011).dayOfMonth("28").dayOfWeek("3").hour(20).minute(59).second(59).start(new GregorianCalendar(2011, 5, 11, 20, 59, 58).getTime());
+ EJBCronTrigger trigger = new EJBCronTrigger(expr);
+ assertEquals(new GregorianCalendar(2011, 6, 28, 20, 59, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 6, 27, 21, 59, 59).getTime()));
+ }
@Test(timeout = 5000)
public void testLastDayOfMonthA() throws ParseException {