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 1808c88f0..87b5121e9 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 @@ -125,10 +125,10 @@ 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); } + dontPoseAsTransient(taskElement); } if (!state.getTasksToSave().isEmpty()) { updateRootTaskPosition(); @@ -142,7 +142,7 @@ public class SaveCommand implements ISaveCommand { taskElement.dontPoseAsTransientObjectAnymore(); } Set> resourceAllocations = taskElement.getResourceAllocations(); - derivedDontPoseAsTransient(resourceAllocations); + dontPoseAsTransient(resourceAllocations); if (!taskElement.isLeaf()) { for (TaskElement each : taskElement.getChildren()) { dontPoseAsTransient(each); @@ -150,14 +150,17 @@ public class SaveCommand implements ISaveCommand { } } - private void derivedDontPoseAsTransient( + private void dontPoseAsTransient( Set> resourceAllocations) { for (ResourceAllocation each : resourceAllocations) { + each.dontPoseAsTransientObjectAnymore(); + for (DayAssignment eachAssignment : each.getAssignments()) { + eachAssignment.dontPoseAsTransientObjectAnymore(); + } for (DerivedAllocation eachDerived : each.getDerivedAllocations()) { eachDerived.dontPoseAsTransientObjectAnymore(); - List assignments = eachDerived - .getAssignments(); - for (DerivedDayAssignment eachAssignment : assignments) { + for (DerivedDayAssignment eachAssignment : eachDerived + .getAssignments()) { eachAssignment.dontPoseAsTransientObjectAnymore(); } }