From 0ba502d92ce14f51aa816d8fdfb029efa183ffd1 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Thu, 24 Sep 2009 13:46:59 +0200 Subject: [PATCH] ItEr27S06CUAsignacionGrupoRecursosAPlanificacionItEr26S07: Fixed lazy initialization exception. --- .../navalplanner/web/orders/OrderModel.java | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java index ce3138440..122189aa4 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java @@ -11,6 +11,7 @@ import java.util.Map; import org.apache.commons.lang.Validate; import org.hibernate.validator.ClassValidator; import org.hibernate.validator.InvalidValue; +import org.navalplanner.business.advance.entities.AdvanceMeasurement; import org.navalplanner.business.advance.entities.DirectAdvanceAssignment; import org.navalplanner.business.advance.entities.IndirectAdvanceAssignment; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; @@ -101,16 +102,29 @@ public class OrderModel implements IOrderModel { private void forceLoadAdvanceAssignments(Order order) { for (OrderElement orderElement : order.getOrderElements()) { - for (DirectAdvanceAssignment directAdvanceAssignment : orderElement - .getDirectAdvanceAssignments()) { - directAdvanceAssignment.getAdvanceType().getUnitName(); + forceLoadAdvanceAssignmentsAndMeasurements(orderElement); + } + } + + private void forceLoadAdvanceAssignmentsAndMeasurements( + OrderElement orderElement) { + for (DirectAdvanceAssignment directAdvanceAssignment : orderElement + .getDirectAdvanceAssignments()) { + directAdvanceAssignment.getAdvanceType().getUnitName(); + for (AdvanceMeasurement advanceMeasurement : directAdvanceAssignment + .getAdvanceMeasurements()) { + advanceMeasurement.getValue(); + } + } + + if (orderElement instanceof OrderLineGroup) { + for (IndirectAdvanceAssignment indirectAdvanceAssignment : ((OrderLineGroup) orderElement) + .getIndirectAdvanceAssignments()) { + indirectAdvanceAssignment.getAdvanceType().getUnitName(); } - if (orderElement instanceof OrderLineGroup) { - for (IndirectAdvanceAssignment indirectAdvanceAssignment : ((OrderLineGroup) orderElement) - .getIndirectAdvanceAssignments()) { - indirectAdvanceAssignment.getAdvanceType().getUnitName(); - } + for (OrderElement child : orderElement.getChildren()) { + forceLoadAdvanceAssignmentsAndMeasurements(child); } } }