From b682ce4dfbf076342f77ae99f55cb3b25811d5c4 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.
---
opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java | 4 +++-
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/task/TaskBackendTestCase.java | 6 +++---
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java b/opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java
index bffe9db..7f8888c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/task/RecurringTask.java
+++ b/opendj-sdk/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 {
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/task/TaskBackendTestCase.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/task/TaskBackendTestCase.java
index 1a05f9f..9cd65d9 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/task/TaskBackendTestCase.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/backends/task/TaskBackendTestCase.java
@@ -453,10 +453,10 @@
{ "* 0 * * *", true },
{ "* 0-23 * * *", true },
{ "* 0,23 * * *", true },
- // { "* * 31 * *", true }, *** FIXME: this should work ***
+ { "* * 31 * *", true },
{ "* * 1 * *", true },
{ "* * 1-31 * *", true },
- // { "* * 1,31 * *", true }, *** FIXME: this should work ***
+ { "* * 1,31 * *", true },
{ "* * * 12 *", true },
{ "* * * 1 *", true },
{ "* * * 1-12 *", true },
@@ -464,7 +464,7 @@
{ "* * * * 6", true },
{ "* * * * 0", true },
{ "* * * * 0-6", true },
- { "* * * * 0,6", true },
+ { "* * * * 0,6", true }
};
}
--
Gitblit v1.10.0