From 2f5327a1abb31f9cc74bad9d6678f3993bf53fd5 Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Fri, 17 Apr 2009 13:05:48 +0000
Subject: [PATCH] - [Issue 3336] take appropriate action for failed dependencies.
---
opends/src/server/org/opends/server/backends/task/TaskScheduler.java | 25 ++++++++++++++++++++++---
1 files changed, 22 insertions(+), 3 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 e67b8ff..ab81c1a 100644
--- a/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
+++ b/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
@@ -1011,12 +1011,31 @@
LinkedList<String> dependencyIDs = task.getDependencyIDs();
if (dependencyIDs != null)
{
- for (String dependencyID : task.getDependencyIDs())
+ for (String dependencyID : dependencyIDs)
{
Task t = tasks.get(dependencyID);
- if ((t != null) && (! TaskState.isDone(t.getTaskState())))
+ if (t != null)
{
- return TaskState.WAITING_ON_DEPENDENCY;
+ TaskState tState = t.getTaskState();
+ if (!TaskState.isDone(tState))
+ {
+ return TaskState.WAITING_ON_DEPENDENCY;
+ }
+ if (!TaskState.isSuccessful(tState))
+ {
+ FailedDependencyAction action = task.getFailedDependencyAction();
+ switch (action)
+ {
+ case CANCEL:
+ cancelTask(task.getTaskID());
+ return task.getTaskState();
+ case DISABLE:
+ task.setTaskState(TaskState.DISABLED);
+ return task.getTaskState();
+ default:
+ break;
+ }
+ }
}
}
}
--
Gitblit v1.10.0