mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 13:20:57 +00:00
made tracker stopping after finishing loading a replay race null-safe
This commit is contained in:
1 parent
72c5113ca0
commit
d7ca5c2413
3 files changed
+10
-5
No files matched your search
+6
-3
@@ -96,9 +96,12 @@ public class LeaderboardGroupMasterDataJsonDeserializer implements JsonDeseriali
|
||||
String name = (String) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_NAME);
|
||||
String description = (String) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_DESCRIPTION);
|
||||
boolean displayGroupsReverse = (Boolean) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_DISPLAY_GROUPS_REVERSE);
|
||||
boolean hasOverallLeaderboard = (Boolean) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_HAS_OVERALL_LEADERBOARD);
|
||||
ScoringScheme overallLeaderboardScoringScheme = LeaderboardMasterDataJsonDeserializer.deserializeScoringScheme((JSONObject) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_OVERALL_LEADERBOARD_SCORING_SCHEME), domainFactory);
|
||||
int[] overallLeaderboardResultDiscardingThresholds = LeaderboardMasterDataJsonDeserializer.deserializeResultDesicardingRule((JSONObject) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_OVERALL_LEADERBOARD_DISCARDING_THRESHOLDS));
|
||||
Boolean hasOverallLeaderboard = (Boolean) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_HAS_OVERALL_LEADERBOARD);
|
||||
if (hasOverallLeaderboard == null) {
|
||||
hasOverallLeaderboard = false;
|
||||
}
|
||||
ScoringScheme overallLeaderboardScoringScheme = !hasOverallLeaderboard ? null : LeaderboardMasterDataJsonDeserializer.deserializeScoringScheme((JSONObject) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_OVERALL_LEADERBOARD_SCORING_SCHEME), domainFactory);
|
||||
int[] overallLeaderboardResultDiscardingThresholds = !hasOverallLeaderboard ? null : LeaderboardMasterDataJsonDeserializer.deserializeResultDesicardingRule((JSONObject) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_OVERALL_LEADERBOARD_DISCARDING_THRESHOLDS));
|
||||
return new LeaderboardGroupMasterData(name, description, displayGroupsReverse, hasOverallLeaderboard, overallLeaderboardScoringScheme, overallLeaderboardResultDiscardingThresholds, leaderboards, events, regattas);
|
||||
}
|
||||
|
||||
|
||||
+1
@@ -100,6 +100,7 @@ public class LeaderboardGroupJsonGetServlet extends AbstractJsonHttpServlet {
|
||||
TrackedRace trackedRace = raceColumn.getTrackedRace(fleet);
|
||||
if (trackedRace != null) {
|
||||
jsonRaceColumn.put("isTracked", true);
|
||||
jsonRaceColumn.put("regattaName", trackedRace.getTrackedRegatta().getRegatta().getName());
|
||||
jsonRaceColumn.put("trackedRaceName", trackedRace.getRace().getName());
|
||||
jsonRaceColumn.put("hasGpsData", trackedRace.hasGPSData());
|
||||
jsonRaceColumn.put("hasWindData", trackedRace.hasWindData());
|
||||
|
||||
+3
-2
@@ -1234,8 +1234,9 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
|
||||
InterruptedException {
|
||||
logger.info("Stopping tracking for " + race + "...");
|
||||
synchronized (raceTrackersByRegatta) {
|
||||
final Set<RaceTracker> trackerSet = raceTrackersByRegatta.get(regatta);
|
||||
if (raceTrackersByRegatta.containsKey(regatta)) {
|
||||
Iterator<RaceTracker> trackerIter = raceTrackersByRegatta.get(regatta).iterator();
|
||||
Iterator<RaceTracker> trackerIter = trackerSet.iterator();
|
||||
while (trackerIter.hasNext()) {
|
||||
RaceTracker raceTracker = trackerIter.next();
|
||||
if (raceTracker.getRaces() != null && raceTracker.getRaces().contains(race)) {
|
||||
@@ -1250,7 +1251,7 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
|
||||
}
|
||||
stopTrackingWind(regatta, race);
|
||||
// if the last tracked race was removed, confirm that tracking for the entire regatta has stopped
|
||||
if (raceTrackersByRegatta.get(regatta).isEmpty()) {
|
||||
if (trackerSet == null || trackerSet.isEmpty()) {
|
||||
stopTracking(regatta);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user