bug6073: in TracTrac tests, wait for TrackedRace to appear when trying to set status to LOADING;

this makes it more likely to suspend maneuver analysis while inserting
fixes loaded through TracAPI, and hence the incorrect splitting of a
penalty circle into multiple maneuvers
This commit is contained in:
Axel Uhl
2024-11-25 16:35:46 +01:00
parent f8ec7e4d5f
commit d9c9d91e6f
@@ -149,9 +149,12 @@ public abstract class OnlineTracTracBasedTest extends AbstractTracTracLiveTest i
case Begin:
logger.info("Stored data begin");
lastStatus = new TrackedRaceStatusImpl(TrackedRaceStatusEnum.LOADING, 0);
if (getTrackedRace() != null) {
getTrackedRace().onStatusChanged(OnlineTracTracBasedTest.this, lastStatus);
}
new Thread(()->{
final RaceDefinition raceDefinition = domainFactory.getAndWaitForRaceDefinition(getTracTracRace().getId(), /* timeout in millis */ 10000);
if (trackedRegatta != null && raceDefinition != null && trackedRegatta.getTrackedRace(raceDefinition) != null) {
trackedRegatta.getTrackedRace(raceDefinition).onStatusChanged(OnlineTracTracBasedTest.this, lastStatus);
}
}, "waiting for race definition for race "+getTracTracRace().getId()).start();
break;
case End:
logger.info("Stored data end. Delaying status update on tracked race "+getTrackedRace()+" until all events queued in receivers so far have been processed");