diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SaveCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SaveCommand.java index 30d5a900f..3d3d05ac3 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SaveCommand.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SaveCommand.java @@ -122,6 +122,7 @@ public class SaveCommand implements ISaveCommand { private void saveTasksToSave() { for (TaskElement taskElement : state.getTasksToSave()) { taskElementDAO.save(taskElement); + dontPoseAsTransient(taskElement); if (taskElement instanceof Task) { saveTask(taskElement, (Task) taskElement); } @@ -131,6 +132,19 @@ public class SaveCommand implements ISaveCommand { } } + // newly added TaskElement such as milestones must be called + // dontPoseAsTransientObjectAnymore + private void dontPoseAsTransient(TaskElement taskElement) { + if (taskElement.isNewObject()) { + taskElement.dontPoseAsTransientObjectAnymore(); + } + if (!taskElement.isLeaf()) { + for (TaskElement each : taskElement.getChildren()) { + dontPoseAsTransient(each); + } + } + } + private void updateRootTaskPosition() { TaskGroup rootTask = state.getRootTask(); final Date min = minDate(state.getTasksToSave());