From bda19042aca344668d90ed5170365d5448a6587e Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Sat, 28 Apr 2018 00:07:36 +0200 Subject: [PATCH] made RecordMarkGPSFixForExistingTrack safe for non-found marks Change-Id: I781b1068283fa6890899004c5b57793899561440 --- .../RecordMarkGPSFixForExistingTrack.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java index 28687361c63..ccaca3b1e75 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordMarkGPSFixForExistingTrack.java @@ -1,6 +1,7 @@ package com.sap.sailing.server.operationaltransformation; import java.io.Serializable; +import java.util.logging.Logger; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; @@ -9,6 +10,7 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.server.RacingEventService; public class RecordMarkGPSFixForExistingTrack extends RecordMarkGPSFix { + private static final Logger logger = Logger.getLogger(RecordMarkGPSFixForExistingTrack.class.getName()); private static final long serialVersionUID = -3953907832324217209L; private final Serializable markId; @@ -33,7 +35,13 @@ public class RecordMarkGPSFixForExistingTrack extends RecordMarkGPSFix { DynamicTrackedRace trackedRace = getTrackedRace(toState); if (trackedRace != null) { Mark mark = getMarkById(trackedRace); - trackedRace.recordFix(mark, getFix(), /* onlyWhenInTrackingTimeInterval */ false); // record the fix in any case + if (mark != null) { + trackedRace.recordFix(mark, getFix(), /* onlyWhenInTrackingTimeInterval */ false); // record the fix in any case + } else { + logger.warning("Received GPS fix for mark with ID "+markId+" which was not found in tracked race "+trackedRace.getRace().getName()+ + " in regatta "+trackedRace.getTrackedRegatta().getRegatta().getName()+ + ". Maybe this event was processed after the mark had been removed."); + } } return null; }