diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java index 7936462d4..c028a683d 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java +++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java @@ -57,6 +57,7 @@ import org.libreplan.business.orders.entities.SchedulingState.Type; import org.libreplan.business.orders.entities.TaskSource.TaskSourceSynchronization; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; +import org.libreplan.business.planner.entities.TaskGroup; import org.libreplan.business.planner.entities.TaskPositionConstraint; import org.libreplan.business.qualityforms.entities.QualityForm; import org.libreplan.business.qualityforms.entities.TaskQualityForm; @@ -290,6 +291,11 @@ public abstract class OrderElement extends IntegrationEntity implements SchedulingDataForVersion schedulingDataForVersion) { List result = new ArrayList(); if (isSchedulingPoint()) { + if(isSchedulingPointButItWasNot()) { + //this element was a container but now it's a scheduling point + //we have to remove the TaskSource which contains a TaskGroup instead of TaskElement + removeTaskSource(result); + } result .addAll(synchronizationForSchedulingPoint(schedulingDataForVersion)); } else if (isSuperElementPartialOrCompletelyScheduled()) { @@ -323,6 +329,11 @@ public abstract class OrderElement extends IntegrationEntity implements && getTaskSource().getTask() instanceof Task; } + private boolean isSchedulingPointButItWasNot() { + return getTaskSource() != null + && getTaskSource().getTask() instanceof TaskGroup; + } + private List childrenSynchronizations() { List childrenOfGroup = new ArrayList(); for (OrderElement orderElement : getSomewhatScheduledOrderElements()) {