consider only race log events valid at request time point

Change-Id: Ica33a29f0a3b653b8f0b803c1e7b37dd5f2b0acd
This commit is contained in:
Axel Uhl committed 2018-08-09 12:57:40 +02:00
1 parent 6aac0335df
commit f3fbc463fa
2 files changed
+6 -4

No files matched your search

@@ -62,9 +62,12 @@ public class RaceStatusAnalyzer extends RaceLogAnalyzer<Pair<RaceLogRaceStatus,
final EventDispatcher eventDispatcher = new EventDispatcher(now, racingProcedure);
RaceLogRaceStatus result = RaceLogRaceStatus.UNSCHEDULED;
for (RaceLogRaceStatusEvent event : statusEvents.descendingSet()) {
event.accept(eventDispatcher);
result = eventDispatcher.nextStatus;
break;
// consider race log status events that are valid already at the time point we use as "now"
if (!event.getLogicalTimePoint().after(now)) {
event.accept(eventDispatcher);
result = eventDispatcher.nextStatus;
break;
}
}
return new Pair<>(result, now);
}
@@ -343,7 +343,6 @@ public class ReadonlyRaceStateImpl implements ReadonlyRaceState, RaceLogChangedL
@Override
public RaceLogRaceStatus getStatus() {
// TODO bug4713: check clock and invalidate/recalculate if clock passed status invalidation time point
final TimePoint timePointForAnalysis = statusAnalyzerClock.now();
final TimeRange timeRangeSinceLastStatusUpdate = new TimeRangeImpl(clockTimePointWhenCachedRaceStatusWasSet, timePointForAnalysis);
if (overlapsTimePointForPotentialStatusChange(timeRangeSinceLastStatusUpdate)) {