From 9d12a3dacc94f69343093b4f398b93a83efbdc00 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 17 Sep 2010 22:54:59 +0000
Subject: [PATCH] Make sure completed tasks retention limit is respected upon server restarts.
---
opends/src/messages/messages/backend.properties | 2 ++
opends/src/server/org/opends/server/backends/task/TaskScheduler.java | 14 +++++++++++++-
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/opends/src/messages/messages/backend.properties b/opends/src/messages/messages/backend.properties
index 31c2177..b20b339 100644
--- a/opends/src/messages/messages/backend.properties
+++ b/opends/src/messages/messages/backend.properties
@@ -410,6 +410,8 @@
the same ID
SEVERE_ERR_TASKSCHED_DUPLICATE_TASK_ID_134=Unable to schedule task %s because \
another task already exists with the same ID
+MILD_WARN_TASKSCHED_DUPLICATE_TASK_ID_135=Unable to add completed task %s to \
+ the task scheduler because another task already exists with the same ID
SEVERE_ERR_TASKSCHED_ERROR_SCHEDULING_RECURRING_ITERATION_136=An error \
occurred while attempting to schedule the next iteration of recurring task \
%s: %s
diff --git a/opends/src/server/org/opends/server/backends/task/TaskScheduler.java b/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
index 061e275..d230e19 100644
--- a/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
+++ b/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
@@ -1170,7 +1170,19 @@
Task task = entryToScheduledTask(entry, null);
if (TaskState.isDone(task.getTaskState()))
{
- completedTasks.add(task);
+ String id = task.getTaskID();
+ if (tasks.containsKey(id))
+ {
+ Message message =
+ WARN_TASKSCHED_DUPLICATE_TASK_ID.get(
+ String.valueOf(id));
+ logError(message);
+ }
+ else
+ {
+ completedTasks.add(task);
+ tasks.put(id, task);
+ }
}
else
{
--
Gitblit v1.10.0