From 84e3bf082bb7b0a12a47da358490a231ae590661 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Wed, 13 Apr 2011 12:32:39 +0200 Subject: [PATCH] [Bug #982] Fix bug ClassCastException on editing a Work Report Initialize Order FEA: ItEr74S04BugFixing --- .../web/workreports/WorkReportModel.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java index 7fbba315f..668d57da2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Set; import org.apache.commons.lang.Validate; +import org.hibernate.Hibernate; import org.navalplanner.business.common.IntegrationEntity; import org.navalplanner.business.common.daos.IConfigurationDAO; import org.navalplanner.business.common.entities.EntityNameEnum; @@ -43,6 +44,7 @@ import org.navalplanner.business.labels.entities.LabelType; import org.navalplanner.business.orders.daos.IOrderDAO; import org.navalplanner.business.orders.daos.IOrderElementDAO; import org.navalplanner.business.orders.entities.OrderElement; +import org.navalplanner.business.orders.entities.OrderLineGroup; import org.navalplanner.business.resources.daos.IWorkerDAO; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.Worker; @@ -221,8 +223,21 @@ public class WorkReportModel extends IntegrationEntityModel implements private void forceLoadPrincipalDataWorkReportLines(WorkReportLine line) { line.getNumHours(); line.getResource().getShortDescription(); - line.getOrderElement().getOrder(); line.getTypeOfWorkHours().getName(); + initalizeOrderElement(line.getOrderElement()); + } + + private void initalizeOrderElement(OrderElement orderElement) { + Hibernate.initialize(orderElement); + initalizeOrder(orderElement); + } + + private void initalizeOrder(OrderElement orderElement) { + OrderLineGroup parent = orderElement.getParent(); + while (parent != null) { + Hibernate.initialize(parent); + parent = parent.getParent(); + } } private void forceLoadWorkReportTypeFromDB(WorkReportType workReportType) {