From 496a2e38f75326d4ebf5363621b9e6e2a9077b2a Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Thu, 16 Apr 2009 15:13:59 +0000
Subject: [PATCH] - [Issues 3842/3770] validate recurring task day against the actual maximum of a given calendar instance.

---
 opends/src/server/org/opends/server/backends/task/RecurringTask.java |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/backends/task/RecurringTask.java b/opends/src/server/org/opends/server/backends/task/RecurringTask.java
index bffe9db..7f8888c 100644
--- a/opends/src/server/org/opends/server/backends/task/RecurringTask.java
+++ b/opends/src/server/org/opends/server/backends/task/RecurringTask.java
@@ -640,7 +640,9 @@
           }
           day = getNextTimeSlice(daysArray,
             calendar.get(GregorianCalendar.DAY_OF_MONTH));
-          if (day == -1) {
+          if ((day == -1) || (day > calendar.getActualMaximum(
+                              GregorianCalendar.DAY_OF_MONTH)))
+          {
             calendar.set(GregorianCalendar.DAY_OF_MONTH, 1);
             calendar.add(GregorianCalendar.MONTH, 1);
           } else {

--
Gitblit v1.10.0