diff --git a/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/AbstractHTWorkItemHandler.java b/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/AbstractHTWorkItemHandler.java index 2c685993d8..6b270cb940 100644 --- a/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/AbstractHTWorkItemHandler.java +++ b/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/AbstractHTWorkItemHandler.java @@ -60,6 +60,8 @@ public abstract class AbstractHTWorkItemHandler implements WorkItemHandler { protected static final String ADMIN_USER = System.getProperty("org.jbpm.ht.admin.user", "Administrator"); + private static final Boolean COPY_TASK_SUBJECT_TO_TASK_DESCRIPTION = Boolean.parseBoolean(System.getProperty("org.jbpm.ht.copy.task_subject.to.task_description", "true")); + protected OnErrorAction action = OnErrorAction.LOG; public AbstractHTWorkItemHandler() { @@ -107,9 +109,14 @@ protected Task createTaskBasedOnWorkItemParams(KieSession session, WorkItem work String description = (String) workItem.getParameter("Description"); if (description == null) { - description = comment; + if (COPY_TASK_SUBJECT_TO_TASK_DESCRIPTION) { + description = comment; + } else { + description = ""; + } + } - + List descriptions = new ArrayList(); I18NText descText = TaskModelProvider.getFactory().newI18NText(); ((InternalI18NText) descText).setLanguage(locale); diff --git a/jbpm-human-task/jbpm-human-task-workitems/src/test/java/org/jbpm/services/task/wih/HTWorkItemHandlerBaseTest.java b/jbpm-human-task/jbpm-human-task-workitems/src/test/java/org/jbpm/services/task/wih/HTWorkItemHandlerBaseTest.java index 4627b5d665..1d7102f9b4 100644 --- a/jbpm-human-task/jbpm-human-task-workitems/src/test/java/org/jbpm/services/task/wih/HTWorkItemHandlerBaseTest.java +++ b/jbpm-human-task/jbpm-human-task-workitems/src/test/java/org/jbpm/services/task/wih/HTWorkItemHandlerBaseTest.java @@ -129,6 +129,80 @@ public void testTaskMultipleActors() throws Exception { assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME)); } + @Test + public void testTaskDescriptionCopyingFromTaskSubject() throws Exception { + + System.setProperty("org.jbpm.ht.copy.task_subject.to.task_description", "true"); + + TestWorkItemManager manager = new TestWorkItemManager(); + ksession.setWorkItemManager(manager); + WorkItemImpl workItem = new WorkItemImpl(); + workItem.setName("Human Task"); + workItem.setParameter("NodeName", "TaskName"); + workItem.setParameter("Comment", "MyComment"); + workItem.setParameter("Priority", "10"); + workItem.setParameter("ActorId", "Darth Vader, Dalai Lama"); + workItem.setProcessInstanceId(10); + getHandler().executeWorkItem(workItem, manager); + + List tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); + assertEquals(1, tasks.size()); + TaskSummary task = tasks.get(0); + assertEquals("TaskName", task.getName()); + assertEquals(10, task.getPriority().intValue()); + assertEquals("MyComment", task.getSubject()); + assertEquals("MyComment", task.getDescription()); + assertEquals(Status.Ready, task.getStatus()); + + taskService.claim(task.getId(), "Darth Vader"); + + taskService.start(task.getId(), "Darth Vader"); + + taskService.complete(task.getId(), "Darth Vader", null); + + assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME)); + + System.clearProperty("org.jbpm.ht.copy.task_subject.to.task_description"); + } + + @Test + public void testTaskDescriptionWithoutCopyingFromTaskSubject() throws Exception { + + System.setProperty("org.jbpm.ht.copy.task_subject.to.task_description", "false"); + + TestWorkItemManager manager = new TestWorkItemManager(); + ksession.setWorkItemManager(manager); + WorkItemImpl workItem = new WorkItemImpl(); + workItem.setName("Human Task"); + workItem.setParameter("NodeName", "TaskName"); + workItem.setParameter("Comment", "MyComment"); + workItem.setParameter("Description", "MyDescription"); + workItem.setParameter("Priority", "10"); + workItem.setParameter("ActorId", "Darth Vader, Dalai Lama"); + workItem.setProcessInstanceId(10); + getHandler().executeWorkItem(workItem, manager); + + List tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); + assertEquals(1, tasks.size()); + TaskSummary task = tasks.get(0); + assertEquals("TaskName", task.getName()); + assertEquals(10, task.getPriority().intValue()); + assertEquals("MyComment", task.getSubject()); + assertEquals("MyDescription", task.getDescription()); + assertEquals(Status.Ready, task.getStatus()); + + taskService.claim(task.getId(), "Darth Vader"); + + taskService.start(task.getId(), "Darth Vader"); + + taskService.complete(task.getId(), "Darth Vader", null); + + assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME)); + + System.clearProperty("org.jbpm.ht.copy.task_subject.to.task_description"); + + } + @Test public void testTaskGroupActors() throws Exception {