From 91c9fb8ba3e0de5f63ab891baf936b801a7aa949 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Mon, 05 Jul 2010 12:12:23 +0000
Subject: [PATCH] Fix for issue #4572. The duplicated recurring tasks were due to milliseconds date differences between iterations.
---
opends/src/server/org/opends/server/backends/task/TaskScheduler.java | 30 ++++++++++++++++++------------
1 files changed, 18 insertions(+), 12 deletions(-)
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 6a8874d..061e275 100644
--- a/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
+++ b/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2009 Sun Microsystems, Inc.
+ * Copyright 2006-2010 Sun Microsystems, Inc.
*/
package org.opends.server.backends.task;
@@ -671,19 +671,25 @@
}
catch (DirectoryException de)
{
- if (debugEnabled())
+ // This task might have been already scheduled from before
+ // and thus got initialized from backing file, otherwise
+ // log error and continue.
+ if (de.getResultCode() != ResultCode.ENTRY_ALREADY_EXISTS)
{
- TRACER.debugCaught(DebugLogLevel.ERROR, de);
+ if (debugEnabled())
+ {
+ TRACER.debugCaught(DebugLogLevel.ERROR, de);
+ }
+
+ Message message =
+ ERR_TASKSCHED_ERROR_SCHEDULING_RECURRING_ITERATION.
+ get(recurringTaskID, de.getMessageObject());
+ logError(message);
+
+ DirectoryServer.sendAlertNotification(this,
+ ALERT_TYPE_CANNOT_SCHEDULE_RECURRING_ITERATION,
+ message);
}
-
- Message message =
- ERR_TASKSCHED_ERROR_SCHEDULING_RECURRING_ITERATION.
- get(recurringTaskID, de.getMessageObject());
- logError(message);
-
- DirectoryServer.sendAlertNotification(this,
- ALERT_TYPE_CANNOT_SCHEDULE_RECURRING_ITERATION,
- message);
}
}
}
--
Gitblit v1.10.0