From 94d1f5f1d5d1403d5cb56abf266fabbfa90cdacc Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Fri, 17 Apr 2009 14:55:44 +0000
Subject: [PATCH] - [Issue 2725] prevent completed tasks from causing exceptions if task class is disallowed after it has completed.
---
opends/src/server/org/opends/server/backends/task/TaskScheduler.java | 15 ++++++++-------
1 files changed, 8 insertions(+), 7 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 58267e5..e4a5a46 100644
--- a/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
+++ b/opends/src/server/org/opends/server/backends/task/TaskScheduler.java
@@ -2010,14 +2010,8 @@
throw new DirectoryException(ResultCode.OBJECTCLASS_VIOLATION, message);
}
- String taskClassName = value.getValue().toString();
- if (! DirectoryServer.getAllowedTasks().contains(taskClassName))
- {
- Message message = ERR_TASKSCHED_NOT_ALLOWED_TASK.get(taskClassName);
- throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
- }
-
// Try to load the specified class.
+ String taskClassName = value.getValue().toString();
Class<?> taskClass;
try
{
@@ -2081,6 +2075,13 @@
message);
}
+ if (!TaskState.isDone(task.getTaskState()) &&
+ !DirectoryServer.getAllowedTasks().contains(taskClassName))
+ {
+ Message message = ERR_TASKSCHED_NOT_ALLOWED_TASK.get(taskClassName);
+ throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
+ }
+
task.setOperation(operation);
// Avoid task specific initialization for completed tasks.
--
Gitblit v1.10.0