Index: src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java =================================================================== --- src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java (revision 5673) +++ src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java (working copy) @@ -28,6 +28,7 @@ import org.jbpm.api.activity.ActivityExecution; import org.jbpm.api.task.Task; import org.jbpm.internal.log.Log; +import org.jbpm.pvm.internal.cal.BusinessCalendar; import org.jbpm.pvm.internal.env.EnvironmentImpl; import org.jbpm.pvm.internal.history.HistoryEvent; import org.jbpm.pvm.internal.history.events.TaskActivityStart; @@ -76,6 +77,12 @@ task.setPriority(taskDefinition.getPriority()); task.setFormResourceName(taskDefinition.getFormResourceName()); + // calculate the due date of the task based on the due date duration + if (taskDefinition.getDueDateDuration() != null) { + BusinessCalendar businessCalendar = EnvironmentImpl.getFromCurrent(BusinessCalendar.class); + task.setDuedate(businessCalendar.add(task.getCreateTime(), taskDefinition.getDueDateDuration())); + } + // save task so that TaskDbSession.findTaskByExecution works for assign event listeners dbSession.save(task);