diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
index 5e86d04aa60..4b311f7d7cd 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
@@ -495,11 +495,6 @@ public class MockedTrackedRace implements DynamicTrackedRace {
DynamicRaceDefinitionSet raceDefinitionSetToUpdate, boolean useMarkPassingcalculator) {
return null;
}
-
- @Override
- public TrackedRace getPreviousRaceInExecutionOrder(TrackedRace race) {
- return null;
- }
};
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java
index 17040171583..227a8a216f5 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java
@@ -73,9 +73,4 @@ public interface TrackedRegatta extends Serializable {
void removeTrackedRace(RaceDefinition raceDefinition);
- /**
- * Parameter race is a {@link TrackedRace} from which the method returns the previous {@link TrackedRace} in the execution order of a {@link Regatta}.
- * */
- TrackedRace getPreviousRaceInExecutionOrder(TrackedRace race);
-
}
\ No newline at end of file
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java
index 5b71bf2df0a..567f59de16f 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java
@@ -46,7 +46,6 @@ import com.sap.sailing.domain.tracking.RaceChangeListener;
import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider;
import com.sap.sailing.domain.tracking.StartTimeChangedListener;
import com.sap.sailing.domain.tracking.TrackedLeg;
-import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRaceStatus;
import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sailing.domain.tracking.WindStore;
@@ -661,15 +660,8 @@ DynamicTrackedRace, GPSTrackListener {
TimePoint startOfTracking = getStartOfTracking();
TimePoint endOfRace = getEndOfRace();
TimePoint endOfTracking = getEndOfTracking();
- TrackedRace previosRaceInExecutionOrder = getTrackedRegatta().getPreviousRaceInExecutionOrder(this);
- long conditional_time_before_start_to_track_wind;
- if(previosRaceInExecutionOrder == null || previosRaceInExecutionOrder.getEndOfTracking() != null || !previosRaceInExecutionOrder.hasWindData()){
- conditional_time_before_start_to_track_wind = EXTRA_LONG_TIME_BEFORE_START_TO_TRACK_WIND_IN_MILLISECONDS;
- }else{
- conditional_time_before_start_to_track_wind = TIME_BEFORE_START_TO_TRACK_WIND_IN_MILLISECONDS;
- }
- if ((startOfTracking == null || !startOfTracking.minus(conditional_time_before_start_to_track_wind).after(wind.getTimePoint()) ||
- (startOfRace != null && !startOfRace.minus(conditional_time_before_start_to_track_wind).after(wind.getTimePoint())))
+ if ((startOfTracking == null || !startOfTracking.minus(TrackedRaceImpl.TIME_BEFORE_START_TO_TRACK_WIND_MILLIS).after(wind.getTimePoint()) ||
+ (startOfRace != null && !startOfRace.minus(TrackedRaceImpl.TIME_BEFORE_START_TO_TRACK_WIND_MILLIS).after(wind.getTimePoint())))
&&
// Caution: don't add to endOfTracking; it may be the end of time, leading to a wrap-around / overflow
(endOfTracking == null || endOfTracking.after(wind.getTimePoint().minus(TimingConstants.IS_LIVE_GRACE_PERIOD_IN_MILLIS)) ||
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
index 07ce24c9fcb..77ed7eadc63 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
@@ -152,13 +152,8 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
// TODO make this variable
private static final long DELAY_FOR_CACHE_CLEARING_IN_MILLISECONDS = 7500;
- public static final long TIME_BEFORE_START_TO_TRACK_WIND_IN_MILLISECONDS = 4 * 60 * 1000l; // let wind start four minutes before race
-
- /**
- * To make wind accessible 30 minutes before first race starts, there is a additional time buffer to record wind.
- */
- public static final long EXTRA_LONG_TIME_BEFORE_START_TO_TRACK_WIND_IN_MILLISECONDS = 30 * 60 * 1000l;
-
+ public static final long TIME_BEFORE_START_TO_TRACK_WIND_MILLIS = 4 * 60 * 1000l; // let wind start four minutes before race
+
private TrackedRaceStatus status;
private final Object statusNotifier;
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaImpl.java
index c4fa256a9e0..32532ee476e 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaImpl.java
@@ -7,8 +7,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
@@ -16,13 +14,9 @@ import java.util.logging.Logger;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Competitor;
-import com.sap.sailing.domain.base.Fleet;
-import com.sap.sailing.domain.base.RaceColumn;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
-import com.sap.sailing.domain.base.Series;
import com.sap.sailing.domain.base.Sideline;
-import com.sap.sailing.domain.base.impl.AbstractRaceColumnListener;
import com.sap.sailing.domain.common.NoWindException;
import com.sap.sailing.domain.racelog.tracking.GPSFixStore;
import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet;
@@ -32,16 +26,8 @@ import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sailing.domain.tracking.WindStore;
import com.sap.sse.common.TimePoint;
-import com.sap.sse.util.SmartFutureCache;
-import com.sap.sse.util.SmartFutureCache.AbstractCacheUpdater;
-import com.sap.sse.util.SmartFutureCache.EmptyUpdateInterval;
-
-import difflib.PatchFailedException;
public class TrackedRegattaImpl implements TrackedRegatta {
-
- private RaceExecutionOrderCache raceExecutionOrderCache;
-
private static final long serialVersionUID = 6480508193567014285L;
private static final Logger logger = Logger.getLogger(TrackedRegattaImpl.class.getName());
@@ -57,13 +43,11 @@ public class TrackedRegattaImpl implements TrackedRegatta {
this.trackedRaces = new HashMap();
this.trackedRacesByBoatClass = new HashMap>();
raceListeners = new HashSet();
- this.raceExecutionOrderCache = new RaceExecutionOrderCache();
}
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
ois.defaultReadObject();
this.raceListeners = new HashSet();
- this.raceExecutionOrderCache = new RaceExecutionOrderCache();
}
private void writeObject(ObjectOutputStream oos) throws IOException {
@@ -200,103 +184,5 @@ public class TrackedRegattaImpl implements TrackedRegatta {
addTrackedRace(result);
return result;
}
-
- @Override
- public TrackedRace getPreviousRaceInExecutionOrder(TrackedRace race) {
- List racesInOrder = raceExecutionOrderCache.getRacesInExecutionOrder();
- if (racesInOrder != null) {
- int indexOfRace = racesInOrder.indexOf(race);
- if (indexOfRace != -1 && indexOfRace != 0) {
- return racesInOrder.get(indexOfRace - 1);
- }
- }
- return null;
- }
-
- private class RaceExecutionOrderCache extends AbstractRaceColumnListener {
- private transient SmartFutureCache, EmptyUpdateInterval> racesOrderCache;
- private final String RACES_ORDER_LIST_CACHE_KEY = "racesOrderCacheKey";
- private final String RACES_ORDER_LIST_LOCKS_NAME = getClass().getName();
- private static final long serialVersionUID = -1016823551825618490L;
-
- public RaceExecutionOrderCache() {
- racesOrderCache = createRacesOrderCache();
- racesOrderCache.triggerUpdate(RACES_ORDER_LIST_CACHE_KEY,/*update interval*/ null);
- getRegatta().addRaceColumnListener(this);
- }
-
- public List getRacesInExecutionOrder() {
- List result;
- result = racesOrderCache.get(RACES_ORDER_LIST_CACHE_KEY,/*waitForLatest*/ true);
- return result;
- }
-
- @Override
- public void trackedRaceLinked(RaceColumn raceColumn, Fleet fleet, TrackedRace trackedRace) {
- racesOrderCache.triggerUpdate(RACES_ORDER_LIST_CACHE_KEY,/*update interval*/ null);
- }
-
- @Override
- public void trackedRaceUnlinked(RaceColumn raceColumn, Fleet fleet, TrackedRace trackedRace) {
- racesOrderCache.triggerUpdate(RACES_ORDER_LIST_CACHE_KEY,/*update interval*/ null);
- }
-
- @Override
- public void raceColumnAddedToContainer(RaceColumn raceColumn) {
- racesOrderCache.triggerUpdate(RACES_ORDER_LIST_CACHE_KEY,/*update interval*/ null);
- }
-
- @Override
- public void raceColumnRemovedFromContainer(RaceColumn raceColumn) {
- racesOrderCache.triggerUpdate(RACES_ORDER_LIST_CACHE_KEY,/*update interval*/ null);
- }
-
- @Override
- public void raceColumnMoved(RaceColumn raceColumn, int newIndex) {
- racesOrderCache.triggerUpdate(RACES_ORDER_LIST_CACHE_KEY,/*update interval*/ null);
- }
-
- private List reloadRacesInExecutionOrder() {
- List raceIdListInExecutionOrder = new ArrayList();
- Iterator extends Series> seriesInRegatta = getRegatta().getSeries().iterator();
- while (seriesInRegatta.hasNext()) {
- Series currentSeries = seriesInRegatta.next();
- Iterator extends RaceColumn> raceColumns = currentSeries.getRaceColumns().iterator();
- while (raceColumns.hasNext()) {
- RaceColumn currentRaceColumn = raceColumns.next();
- Iterator extends Fleet> fleetsInRaceColumn = currentRaceColumn.getFleets().iterator();
- while (fleetsInRaceColumn.hasNext()) {
- TrackedRace trackedRaceInColumnForFleet = currentRaceColumn.getTrackedRace(fleetsInRaceColumn
- .next());
- if (trackedRaceInColumnForFleet != null) {
- raceIdListInExecutionOrder.add(trackedRaceInColumnForFleet);
- }
- }
- }
- }
- return raceIdListInExecutionOrder;
- }
-
- private SmartFutureCache, EmptyUpdateInterval> createRacesOrderCache() {
- return new SmartFutureCache, SmartFutureCache.EmptyUpdateInterval>(
- new AbstractCacheUpdater, SmartFutureCache.EmptyUpdateInterval>() {
-
- @Override
- public List computeCacheUpdate(String key,
- EmptyUpdateInterval updateInterval) throws Exception {
- if (key.equals(RACES_ORDER_LIST_CACHE_KEY)) {
- return reloadRacesInExecutionOrder();
- } else {
- return null;
- }
- }
- }, RACES_ORDER_LIST_LOCKS_NAME);
- }
-
- private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException, PatchFailedException {
- ois.defaultReadObject();
- racesOrderCache = createRacesOrderCache();
- }
- }
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindFixesAsNavigableSet.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindFixesAsNavigableSet.java
index 02a948344d1..70fe342982b 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindFixesAsNavigableSet.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindFixesAsNavigableSet.java
@@ -141,7 +141,7 @@ public abstract class VirtualWindFixesAsNavigableSet extends AbstractUnmodifiabl
protected TimePoint getFrom() {
final TimePoint startOfRace = getTrackedRace().getStartOfRace();
return from == null ? startOfRace == null ? new MillisecondsTimePoint(Long.MAX_VALUE)
- : floorToResolution(startOfRace.minus(TrackedRaceImpl.TIME_BEFORE_START_TO_TRACK_WIND_IN_MILLISECONDS)) : from;
+ : floorToResolution(startOfRace.minus(TrackedRaceImpl.TIME_BEFORE_START_TO_TRACK_WIND_MILLIS)) : from;
}
/**
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java
index 0585df1eb03..3c0429c9537 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java
@@ -63,7 +63,7 @@ public abstract class VirtualWindTrackImpl extends WindTrackImpl {
final TimePoint startOfRace = getTrackedRace().getStartOfRace();
TimePoint timePointOfNewestEvent = getTrackedRace().getTimePointOfNewestEvent();
if (startOfRace != null) {
- TimePoint fourMinutesBeforeRaceStartTimePoint = startOfRace.minus(TrackedRaceImpl.TIME_BEFORE_START_TO_TRACK_WIND_IN_MILLISECONDS); // let wind tracks start four minutes before start
+ TimePoint fourMinutesBeforeRaceStartTimePoint = startOfRace.minus(TrackedRaceImpl.TIME_BEFORE_START_TO_TRACK_WIND_MILLIS); // let wind tracks start four minutes before start
if (timePointOfNewestEvent != null) {
if (at.compareTo(fourMinutesBeforeRaceStartTimePoint) < 0) {
adjustedAt = fourMinutesBeforeRaceStartTimePoint;
diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java
index e8330bc26e6..72d10813ee1 100755
--- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java
+++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java
@@ -491,11 +491,6 @@ public class MockedTrackedRace implements DynamicTrackedRace {
boolean useMarkPassingCalculator) {
return null;
}
-
- @Override
- public TrackedRace getPreviousRaceInExecutionOrder(TrackedRace race) {
- return null;
- }
};
}