From 0f382552b17bccb987ad6a2a38021d6bcc4ebe04 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Wed, 6 Apr 2011 13:23:58 +0200 Subject: [PATCH] [Bug #967] Transient instance editing task in WBS after set criterion and save If a treeitem is selected and a new element is added, the selected item is converted into a container (newObject) and the selected item is promoted to a child od this new container. The criteria of the original element is copied to new element (container) and removed from the original element. This causes that the child has a new IndirectCriterionRequirement, which is a new object. The error happened when doing a reattachment of the Order being this new IndirectCriterionRequirement a transient entity. Finally, we have decided to change the business logic of how criterionRequirements are copied when a treeitem is promoted to a container. What happens now is that the original item retains its criterionRequirement and the newObject(container) has empty criterionRequirements. FEA: ItEr74S04BugFixing --- .../business/orders/entities/OrderLine.java | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java index f91955b26..c995e9640 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java @@ -38,7 +38,6 @@ import org.navalplanner.business.advance.entities.AdvanceType; import org.navalplanner.business.advance.entities.DirectAdvanceAssignment; import org.navalplanner.business.advance.entities.IndirectAdvanceAssignment; import org.navalplanner.business.requirements.entities.CriterionRequirement; -import org.navalplanner.business.requirements.entities.DirectCriterionRequirement; import org.navalplanner.business.templates.entities.OrderLineTemplate; public class OrderLine extends OrderElement { @@ -113,12 +112,6 @@ public class OrderLine extends OrderElement { result.setInitDate(getInitDate()); result.setDeadline(getDeadline()); - // copy the criterion requirements to container - copyRequirementToOrderElement(result); - - // removed the direct criterion requirements - removeAllDirectCriterionRequirement(); - if (getName() != null) { this.setName(getName() + " (copy)"); } @@ -133,14 +126,6 @@ public class OrderLine extends OrderElement { return result; } - private void removeAllDirectCriterionRequirement() { - Set directRequirements = new HashSet( - getDirectCriterionRequirement()); - for (DirectCriterionRequirement requirement : directRequirements) { - removeDirectCriterionRequirement(requirement); - } - } - @Valid @Override public List getHoursGroups() { @@ -249,11 +234,6 @@ public class OrderLine extends OrderElement { newRequirement); } - protected void copyRequirementToOrderElement(OrderLineGroup container) { - criterionRequirementHandler.copyRequirementToOrderLineGroup(this, - container); - } - @Override public DirectAdvanceAssignment getReportGlobalAdvanceAssignment() { for (DirectAdvanceAssignment directAdvanceAssignment : getDirectAdvanceAssignments()) {