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/06/29 11:46:59 UTC
svn commit: r1141026 - 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 Jun 29 09:46:59 2011
New Revision: 1141026
URL: http://svn.apache.org/viewvc?rev=1141026&view=rev
Log:
Adding more boundary value checking for range day of month.
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=1141026&r1=1141025&r2=1141026&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 Jun 29 09:46:59 2011
@@ -879,7 +879,8 @@ public class EJBCronTrigger extends Trig
} else if (startWeekdayExpr != null) {
beginValue = startWeekdayExpr.getWeekdayInMonth(calendar);
} else if (startDaysFromLastDayExpr != null) {
- beginValue = startDaysFromLastDayExpr.getNextValue(calendar);
+ Integer next = startDaysFromLastDayExpr.getNextValue(calendar);
+ beginValue = next == null ? calendar.get(field) : next;
} else {
beginValue = convertValue(startWeekDay);
}
@@ -889,7 +890,8 @@ public class EJBCronTrigger extends Trig
} else if (endWeekdayExpr != null) {
endValue = endWeekdayExpr.getWeekdayInMonth(calendar);
} else if (endDaysFromLastDayExpr != null) {
- endValue = endDaysFromLastDayExpr.getNextValue(calendar);
+ Integer next = endDaysFromLastDayExpr.getNextValue(calendar);
+ endValue = next == null ? calendar.get(field) : next;
} else {
endValue = convertValue(endWeekDay);
}
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=1141026&r1=1141025&r2=1141026&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 Jun 29 09:46:59 2011
@@ -329,10 +329,16 @@ public class EJBCronTriggerTest {
assertEquals(new GregorianCalendar(2011, 4, 18, 23, 1, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 4, 18, 23, 0, 0).getTime()));
assertEquals(new GregorianCalendar(2011, 4, 27, 23, 1, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 4, 26, 23, 3, 0).getTime()));
assertEquals(new GregorianCalendar(2011, 5, 4, 23, 1, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 4, 28, 23, 3, 0).getTime()));
- }
-
+ }
+
+ @Test(timeout = 5000)
+ public void testRangeDayOfMonthD() throws ParseException {
+ //current day is later than start day of range.
+ ScheduleExpression expr = new ScheduleExpression().dayOfMonth("-7-1").hour(23).minute(1).second(59).start(new Date(0));
+ EJBCronTrigger trigger = new EJBCronTrigger(expr);
+ assertEquals(new GregorianCalendar(2011, 5, 28, 23, 1, 59).getTime(), trigger.getFireTimeAfter(new GregorianCalendar(2011, 5, 28, 23, 0, 0).getTime()));
+ }
-
@Test(timeout = 500)
public void testRangeDayOfWeekA() throws ParseException {
ScheduleExpression expr = new ScheduleExpression().dayOfWeek("tue-fri").hour(23).minute(1).second(59).start(new Date(0));