diff --git a/activiti-api-impl/activiti-api-task-runtime-impl/src/main/java/org/activiti/runtime/api/impl/TaskRuntimeImpl.java b/activiti-api-impl/activiti-api-task-runtime-impl/src/main/java/org/activiti/runtime/api/impl/TaskRuntimeImpl.java index 8e3ae610052cb0705faf42502cbb64d716e6fad0..49cd3cceb8780dfef223b545a7b2e26df455ee41 100644 --- a/activiti-api-impl/activiti-api-task-runtime-impl/src/main/java/org/activiti/runtime/api/impl/TaskRuntimeImpl.java +++ b/activiti-api-impl/activiti-api-task-runtime-impl/src/main/java/org/activiti/runtime/api/impl/TaskRuntimeImpl.java @@ -249,6 +249,10 @@ public class TaskRuntimeImpl implements TaskRuntime { @Override public Task create(CreateTaskPayload createTaskPayload) { + if (createTaskPayload.getName() == null || createTaskPayload.getName().isEmpty()) { + throw new IllegalStateException("You cannot create a task without name"); + } + org.activiti.engine.task.Task task = taskService.newTask(); task.setName(createTaskPayload.getName()); task.setDescription(createTaskPayload.getDescription()); diff --git a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/tasks/TaskRuntimeStandaloneTaskTest.java b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/tasks/TaskRuntimeStandaloneTaskTest.java index 95938719fbad1bb62b4b566a8e83c12684413ca7..91583b6e9d19152c9986c176e6eafefa911f631b 100644 --- a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/tasks/TaskRuntimeStandaloneTaskTest.java +++ b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/tasks/TaskRuntimeStandaloneTaskTest.java @@ -1,5 +1,8 @@ package org.activiti.spring.boot.tasks; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowable; + import org.activiti.api.runtime.shared.query.Page; import org.activiti.api.runtime.shared.query.Pageable; import org.activiti.api.task.model.Task; @@ -16,8 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import static org.assertj.core.api.Assertions.assertThat; - @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) public class TaskRuntimeStandaloneTaskTest { @@ -115,5 +116,27 @@ public class TaskRuntimeStandaloneTaskTest { } + + @Test + public void createStandaloneTaskFailWithEmptyName() { + + securityUtil.logInAs("salaboy"); + + //when + Throwable throwable = catchThrowable(() -> + taskRuntime.create(TaskPayloadBuilder.create() + .withAssignee("salaboy") + .build())); + + //then + assertThat(throwable) + .isInstanceOf(IllegalStateException.class); + + + Page tasks = taskRuntime.tasks(Pageable.of(0, + 50)); + + assertThat(tasks.getContent()).hasSize(0); + } }