From c502b862f035201fa755611eb3dafb77ecddf854 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 13 Jan 2021 14:18:03 +0100 Subject: [PATCH] added logging to RaceAndCompetitorStatusWithRaceLogReconciler --- ...aceAndCompetitorStatusWithRaceLogReconciler.java | 13 +++++++++++++ ...CPerformanceCurveByImpliedWindRankingMetric.java | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceAndCompetitorStatusWithRaceLogReconciler.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceAndCompetitorStatusWithRaceLogReconciler.java index bd36f9836e2..27066afcd2e 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceAndCompetitorStatusWithRaceLogReconciler.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceAndCompetitorStatusWithRaceLogReconciler.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.UUID; +import java.util.logging.Logger; import java.util.stream.StreamSupport; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; @@ -58,6 +59,7 @@ import com.tractrac.model.lib.api.event.RaceStatusType; * */ public class RaceAndCompetitorStatusWithRaceLogReconciler { + private static final Logger logger = Logger.getLogger(RaceAndCompetitorStatusWithRaceLogReconciler.class.getName()); private final DomainFactory domainFactory; private final RaceLogResolver raceLogResolver; private final LogEventAuthorImpl raceLogEventAuthor; @@ -331,6 +333,8 @@ public class RaceAndCompetitorStatusWithRaceLogReconciler { final int officialRank = raceCompetitor.getOfficialRank(); final long officialFinishingTime = raceCompetitor.getOfficialFinishTime(); final long timePointForStatusEvent = raceCompetitor.getStatusTime(); + logger.info("Received a status change for competitor " + raceCompetitor + " in race "+trackedRace.getRaceIdentifier()+": officialRank: " + officialRank + + ", officialFinishingTime: " + officialFinishingTime + ", statusTime: " + timePointForStatusEvent); if (timePointForStatusEvent != 0) { // there is an official result for the competitor on TracTrac's side // find out if we already have this information represented in the race log(s) and if not if the TracTrac information is newer: @@ -363,7 +367,16 @@ public class RaceAndCompetitorStatusWithRaceLogReconciler { defaultRaceLog.add(new RaceLogFinishPositioningConfirmedEventImpl(officialResultTime, officialResultTime, new LogEventAuthorImpl("Official TracTrac Result Provider", 1), // equally important as race officer on water UUID.randomUUID(), defaultRaceLog.getCurrentPassId(), resultsForRaceLog)); + logger.info("Added the following result to the race log of " + trackedRace.getRaceIdentifier() + + " for competitor " + raceCompetitor + ": " + resultForRaceLog); + } else { + logger.info("Did not produce a new competitor result for competitor " + raceCompetitor + " in race " + + trackedRace.getRaceIdentifier() + " because existing result " + + resultFromRaceLogAndItsCreationTimePoint + " was not older than status time " + + officialResultTime + " or was an equal result"); } + } else { + logger.info("Ignoring status change for competitor " + raceCompetitor + " in race "+trackedRace.getRaceIdentifier()+" because the status time was 0"); } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveByImpliedWindRankingMetric.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveByImpliedWindRankingMetric.java index 7c395f68b2e..6c3f1be56d7 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveByImpliedWindRankingMetric.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveByImpliedWindRankingMetric.java @@ -317,7 +317,7 @@ implements com.sap.sailing.domain.orc.ORCPerformanceCurveRankingMetric { Duration minGPH = new MillisecondsDurationImpl(Long.MAX_VALUE); Boat boatWithMinGPH = null; for (final Entry e : certificates.entrySet()) { - if (e.getValue().getGPH().compareTo(minGPH) < 0) { + if (e.getValue().getGPH() != null && e.getValue().getGPH().compareTo(minGPH) < 0) { boatWithMinGPH = e.getKey(); minGPH = e.getValue().getGPH(); }