public TaskDescription getTask(String taskName) {
   if (!isInitialized()) {
     return null;
   }
   try {
     TaskInfo taskInfo;
     synchronized (lock) {
       taskInfo = taskManager.getTask(taskName);
     }
     return TaskBuilder.buildTaskDescription(taskInfo);
   } catch (Exception e) {
     logger.error("Cannot return task [" + taskName + "]. Error: " + e.getLocalizedMessage(), e);
     return null;
   }
 }
 public boolean reschedule(String taskName, TaskDescription taskDescription) {
   if (!isInitialized()) {
     return false;
   }
   try {
     synchronized (lock) {
       TaskInfo taskInfo = taskManager.getTask(taskName);
       TaskDescription description = TaskBuilder.buildTaskDescription(taskInfo);
       taskInfo = TaskBuilder.buildTaskInfo(description, properties);
       taskManager.registerTask(taskInfo);
       taskManager.rescheduleTask(taskInfo.getName());
     }
   } catch (Exception e) {
     return false;
   }
   return true;
 }