made RecordMarkGPSFixForExistingTrack safe for non-found marks

Change-Id: I781b1068283fa6890899004c5b57793899561440
This commit is contained in:
Axel Uhl committed 2018-04-28 00:07:36 +02:00
1 parent 444f117d64
commit bda19042ac
1 file changed
+9 -1
@@ -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;
}