added logging in case a tracked leg doesn't have ranks for all competitors

This commit is contained in:
Axel Uhl committed 2011-06-18 19:00:26 +02:00
1 parent 948a06e054
commit 6221ecd9b0
2 files changed
+16

No files matched your search

@@ -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<Competitor> {
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<Competitor
*/
protected SortedSet<TrackedLegOfCompetitor> 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<TrackedLegOfCompetitor> treeSet = competitorTracksOrderedByRank.get(timePoint);
if (treeSet == null) {
treeSet = new TreeSet<TrackedLegOfCompetitor>(new WindwardToGoComparator(this, timePoint));
@@ -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) {