From 6221ecd9b0f21e5d37b54fa45737a325cd296236 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Sat, 18 Jun 2011 19:00:26 +0200 Subject: [PATCH] added logging in case a tracked leg doesn't have ranks for all competitors --- .../sap/sailing/domain/tracking/impl/TrackedLegImpl.java | 9 +++++++++ .../src/com/sap/sailing/server/ModeratorApp.java | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegImpl.java index 071b63dfb3e..8e34d52d3b0 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegImpl.java @@ -6,6 +6,7 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.SortedSet; import java.util.TreeSet; +import java.util.logging.Logger; import com.sap.sailing.domain.base.Bearing; import com.sap.sailing.domain.base.Buoy; @@ -21,8 +22,11 @@ import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.Wind; +import com.sap.sailing.util.Util; public class TrackedLegImpl implements TrackedLeg, RaceChangeListener { + private final static Logger logger = Logger.getLogger(TrackedLegImpl.class.getName()); + private final static double UPWIND_DOWNWIND_TOLERANCE_IN_DEG = 40; // TracTrac does 22.5, Marcus Baur suggest 40 private final Leg leg; @@ -79,6 +83,11 @@ public class TrackedLegImpl implements TrackedLeg, RaceChangeListener getCompetitorTracksOrderedByRank(TimePoint timePoint) { synchronized (competitorTracksOrderedByRank) { + if (Util.size(getTrackedLegsOfCompetitors()) != Util.size(getTrackedRace().getRace().getCompetitors())) { + logger.warning("Number of competitors in leg (" + Util.size(getTrackedLegsOfCompetitors()) + + ") differs from number of competitors in race (" + + Util.size(getTrackedRace().getRace().getCompetitors()) + ")"); + } SortedSet treeSet = competitorTracksOrderedByRank.get(timePoint); if (treeSet == null) { treeSet = new TreeSet(new WindwardToGoComparator(this, timePoint)); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/ModeratorApp.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/ModeratorApp.java index de54a0a6c6e..518c1abb272 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/ModeratorApp.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/ModeratorApp.java @@ -3,6 +3,7 @@ package com.sap.sailing.server; import java.io.IOException; import java.util.Iterator; import java.util.Map; +import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -35,6 +36,8 @@ import com.sap.sailing.server.util.InvalidDateException; import com.sap.sailing.util.CountryCode; public class ModeratorApp extends Servlet { + private static final Logger logger = Logger.getLogger(ModeratorApp.class.getName()); + private static final long serialVersionUID = 1333207389294903999L; private static final String ACTION_NAME_LIST_EVENTS = "listevents"; @@ -282,6 +285,10 @@ public class ModeratorApp extends Servlet { // well, we don't know the wind direction... then no average VMG will be shown... } try { + Integer rank = ranks.get(competitor); + if (rank == null) { + logger.warning("Can't find rank of competitor "+competitor+" in leg "+leg); + } jsonCompetitorInLeg.put("rank", ranks.get(competitor)); } catch (RuntimeException re) { if (re.getCause() != null && re.getCause() instanceof NoWindException) {