Fixed bug 330

This commit is contained in:
Axel Uhl committed 2012-02-24 06:59:31 +01:00
1 parent 332d884246
commit a13b00744d
1 file changed
+20 -2
@@ -305,9 +305,27 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener {
NavigableSet<MarkPassing> roundings = markPassingsForCompetitor.get(competitor);
MarkPassing lastBeforeOrAt = roundings.floor(new DummyMarkPassingWithTimePointOnly(at));
TrackedLegOfCompetitor result = null;
TrackedLeg trackedLeg;
// already finished the race?
if (lastBeforeOrAt != null && getRace().getCourse().getLastWaypoint() != lastBeforeOrAt.getWaypoint()) {
TrackedLeg trackedLeg = getTrackedLegStartingAt(lastBeforeOrAt.getWaypoint());
if (lastBeforeOrAt != null) {
// and not at or after last mark passing
if (getRace().getCourse().getLastWaypoint() != lastBeforeOrAt.getWaypoint()) {
trackedLeg = getTrackedLegStartingAt(lastBeforeOrAt.getWaypoint());
} else {
// exactly *at* last mark passing?
if (at.equals(roundings.last().getTimePoint())) {
// exactly at finish line; return last leg
trackedLeg = getTrackedLegFinishingAt(lastBeforeOrAt.getWaypoint());
} else {
// no, then we're after the last mark passing
trackedLeg = null;
}
}
} else {
// before beginning of race
trackedLeg = null;
}
if (trackedLeg != null) {
result = trackedLeg.getTrackedLeg(competitor);
}
return result;