From 38bdf817e5e1f5583b397f0392238609c2ad02d1 Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Fri, 17 Apr 2009 13:38:40 +0000
Subject: [PATCH] - reject tasks with missing dependencies.
---
opendj-sdk/opends/src/messages/messages/backend.properties | 4 ++--
opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java | 11 +++++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opends/src/messages/messages/backend.properties b/opendj-sdk/opends/src/messages/messages/backend.properties
index 0344673..b988645 100644
--- a/opendj-sdk/opends/src/messages/messages/backend.properties
+++ b/opendj-sdk/opends/src/messages/messages/backend.properties
@@ -1140,5 +1140,5 @@
specify the number of cleaner threads: defaulting to %d threads
INFO_ERGONOMIC_SIZING_OF_JE_LOCK_TABLES_411=Local DB backend %s does not \
specify the number of lock tables: defaulting to %d
-
-
+SEVERE_ERR_TASKSCHED_DEPENDENCY_MISSING_412=Unable to schedule task %s \
+because its dependency task %s is missing
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java b/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
index ab81c1a..58267e5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
@@ -349,6 +349,17 @@
throw new DirectoryException(ResultCode.ENTRY_ALREADY_EXISTS, message);
}
+ for (String dependencyID : task.getDependencyIDs())
+ {
+ Task t = tasks.get(dependencyID);
+ if (t == null)
+ {
+ Message message = ERR_TASKSCHED_DEPENDENCY_MISSING.get(
+ String.valueOf(id), dependencyID);
+ throw new DirectoryException(ResultCode.NO_SUCH_OBJECT, message);
+ }
+ }
+
tasks.put(id, task);
TaskState state = shouldStart(task);
--
Gitblit v1.10.0