From f71d266f8d858c02f280ecaf43a32a8ba9a30b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Tue, 15 May 2012 09:39:45 +0200 Subject: [PATCH] Bug #1444: Save affected parent TaskElements in the end of the process. We make sure that all TaskElements have been processed before saving. FEA: ItEr76S04BugFixing --- .../org/libreplan/web/planner/order/SaveCommandBuilder.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java index 1734de2b9..50cd0a8e8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java @@ -398,6 +398,7 @@ public class SaveCommandBuilder { private void removeTaskElementsWithTaskSourceNull() { List toRemove = taskElementDAO .getTaskElementsNoMilestonesWithoutTaskSource(); + List toRemoveLater = new ArrayList(); for (TaskElement taskElement : toRemove) { try { taskElementDAO.remove(taskElement.getId()); @@ -405,7 +406,7 @@ public class SaveCommandBuilder { TaskGroup parent = taskElement.getParent(); if (parent != null && !toRemove.contains(parent)) { parent.remove(taskElement); - taskElementDAO.save(parent); + toRemoveLater.add(parent); } LOG.info("TaskElement removed because of TaskSource was null. " @@ -416,6 +417,9 @@ public class SaveCommandBuilder { // so if it's not in the database there isn't any problem } } + for (TaskElement taskElement : toRemoveLater) { + taskElementDAO.save(taskElement); + } } private void saveOrderAuthorizations() {