mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 19:33:52 +00:00
added logging in case a tracked leg doesn't have ranks for all competitors
This commit is contained in:
1 parent
948a06e054
commit
6221ecd9b0
2 files changed
+16
No files matched your search
+9
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user