added fail-safety for TracTrac connector in case race's IControl is not in IEvent's getControls() set

This commit is contained in:
Axel Uhl committed 2020-05-03 23:34:15 +02:00
1 parent 4e613d9cfd
commit 325895f6df
1 file changed
+7
@@ -146,6 +146,13 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue<IControlRoute,
int i = 0;
for (IControl cp : event.getA().getControls()) {
PassingInstruction passingInstructions = courseWaypointPassingInstructions.containsKey(i) ? courseWaypointPassingInstructions.get(i) : PassingInstruction.None;
if (!ttControlPointsForAllOriginalEventControlPoints.containsKey(cp)) {
logger.warning("The TracTrac event "+getTracTracEvent()+" with ID "+
getTracTracEvent().getId()+" does not contain the IControl with ID "+
cp.getId()+" which is used by race "+tractracRace.getId()+
". Adding control point adapter based on race data.");
ttControlPointsForAllOriginalEventControlPoints.put(cp, new ControlPointAdapter(cp));
}
ttControlPoints.add(new Pair<TracTracControlPoint, PassingInstruction>(ttControlPointsForAllOriginalEventControlPoints.get(cp), passingInstructions));
i++;
}