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));