mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

abobrov
17.55.2009 94d1f5f1d5d1403d5cb56abf266fabbfa90cdacc
- [Issue 2725] prevent completed tasks from causing exceptions if task class is disallowed after it has completed.
1 files modified
15 ■■■■ changed files
opends/src/server/org/opends/server/backends/task/TaskScheduler.java 15 ●●●● patch | view | raw | blame | history
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.