From ca10c00b3010a6f2e1b8d23c9a00b62545df7150 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 25 Oct 2016 13:36:36 +0200 Subject: [PATCH 1/3] prevent a race from being live, if endOfTracking is null, instead clamp the time using endOfRace and MAX_TIME_AFTER_RACE_END --- .../sap/sailing/gwt/ui/client/RaceTimePanel.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java index 2d4272927b8..177364fc30f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import com.google.gwt.core.shared.GWT; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.security.Permission; import com.sap.sailing.domain.common.security.SailingPermissionsForRoleProvider; @@ -235,7 +236,7 @@ public class RaceTimePanel extends TimePanel implements R // neither do we know about the end time if both, startOfTracking and endOfTracking are null // and we have neither a valid newestTrackingEvent nor an endOfRace value; if we do, we would // have to be before the later one plus some leeway. - final Date endTimeOfLivePeriod; + Date endTimeOfLivePeriod; if (lastRaceTimesInfo.startOfTracking == null && lastRaceTimesInfo.endOfTracking == null) { Date latestOfNewestTrackingEventAndEndOfRace = lastRaceTimesInfo.newestTrackingEvent; if (latestOfNewestTrackingEventAndEndOfRace == null || (lastRaceTimesInfo.endOfRace != null && lastRaceTimesInfo.endOfRace.after(latestOfNewestTrackingEventAndEndOfRace))) { @@ -244,8 +245,15 @@ public class RaceTimePanel extends TimePanel implements R endTimeOfLivePeriod = latestOfNewestTrackingEventAndEndOfRace == null ? null : new Date(latestOfNewestTrackingEventAndEndOfRace.getTime() + RaceTimesCalculationUtil.TIME_AFTER_LIVE); } else { - endTimeOfLivePeriod = lastRaceTimesInfo.endOfTracking == null ? null : lastRaceTimesInfo.endOfTracking; - } + endTimeOfLivePeriod = lastRaceTimesInfo.endOfTracking == null ? null : lastRaceTimesInfo.endOfTracking; + if(lastRaceTimesInfo.endOfRace != null){ + //this is a failsafe, if the tracking was never finsihed, the race was always assumed to be live. + Date latestAllowedTime = new Date(lastRaceTimesInfo.endOfRace.getTime()+RaceTimesCalculationUtil.MAX_TIME_AFTER_RACE_END); + if(endTimeOfLivePeriod == null || endTimeOfLivePeriod.after(latestAllowedTime)){ + endTimeOfLivePeriod = latestAllowedTime; + } + } +; } isLiveModeToBeMadePossible = endTimeOfLivePeriod == null /* meaning we don't know an end time */ || endTimeOfLivePeriod.getTime() >= liveTimePointInMillis; } else { From b8dc4dccff7b2e729841320ed0a7d798fd87284e Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 25 Oct 2016 13:38:00 +0200 Subject: [PATCH 2/3] fixed warnings --- .../main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java index 177364fc30f..82641ff76be 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java @@ -6,7 +6,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.google.gwt.core.shared.GWT; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.security.Permission; import com.sap.sailing.domain.common.security.SailingPermissionsForRoleProvider; From 7da6078e7b328b3ba246160bef46760b98199515 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Tue, 25 Oct 2016 14:52:09 +0200 Subject: [PATCH 3/3] Formatting changes --- .../com/sap/sailing/gwt/ui/client/RaceTimePanel.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java index 82641ff76be..5dc61e13e33 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java @@ -245,14 +245,15 @@ public class RaceTimePanel extends TimePanel implements R new Date(latestOfNewestTrackingEventAndEndOfRace.getTime() + RaceTimesCalculationUtil.TIME_AFTER_LIVE); } else { endTimeOfLivePeriod = lastRaceTimesInfo.endOfTracking == null ? null : lastRaceTimesInfo.endOfTracking; - if(lastRaceTimesInfo.endOfRace != null){ - //this is a failsafe, if the tracking was never finsihed, the race was always assumed to be live. - Date latestAllowedTime = new Date(lastRaceTimesInfo.endOfRace.getTime()+RaceTimesCalculationUtil.MAX_TIME_AFTER_RACE_END); - if(endTimeOfLivePeriod == null || endTimeOfLivePeriod.after(latestAllowedTime)){ + if (lastRaceTimesInfo.endOfRace != null) { + // this is a failsafe, if the tracking was never finsihed, the race was always assumed to be live. + Date latestAllowedTime = new Date( + lastRaceTimesInfo.endOfRace.getTime() + RaceTimesCalculationUtil.MAX_TIME_AFTER_RACE_END); + if (endTimeOfLivePeriod == null || endTimeOfLivePeriod.after(latestAllowedTime)) { endTimeOfLivePeriod = latestAllowedTime; } } -; } + } isLiveModeToBeMadePossible = endTimeOfLivePeriod == null /* meaning we don't know an end time */ || endTimeOfLivePeriod.getTime() >= liveTimePointInMillis; } else {