diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/ManeuverRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/ManeuverRetrievalProcessor.java index 097e191fba4..1670f3a7083 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/ManeuverRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/ManeuverRetrievalProcessor.java @@ -9,6 +9,7 @@ import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext; import com.sap.sailing.datamining.impl.data.ManeuverWithContext; import com.sap.sailing.datamining.impl.data.TrackedLegOfCompetitorWithSpecificTimePointWithContext; import com.sap.sailing.datamining.shared.ManeuverSettings; +import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.tracking.Maneuver; import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries; @@ -36,6 +37,9 @@ public class ManeuverRetrievalProcessor TimePoint finishTime = element.getTrackedLegOfCompetitor().getFinishTime(); if (finishTime != null) { Iterable maneuvers = null; + if (!isLastLeg(element)) { + finishTime = finishTime.minus(1); + } try { maneuvers = element.getTrackedLegOfCompetitor().getManeuvers(finishTime, false); } catch (NoWindException e) { @@ -66,6 +70,12 @@ public class ManeuverRetrievalProcessor return maneuversWithContext; } + private boolean isLastLeg(HasTrackedLegOfCompetitorContext element) { + Waypoint finishWaypoint = element.getTrackedLegContext().getTrackedRaceContext().getRace().getCourse().getLastWaypoint(); + Waypoint toWaypoint = element.getTrackedLegOfCompetitor().getLeg().getTo(); + return finishWaypoint.equals(toWaypoint); + } + private boolean isManeuverCompliantWithSettings(Maneuver previousManeuver, ManeuverWithContext currentManeuverWithContext, Maneuver nextManeuver) { boolean mainCurveAnalysis = settings.isMainCurveAnalysis();