Fixed the recovering of polars for existing races after com.sap.sailing.polars restart

This commit is contained in:
Lennart Hensler committed 2016-10-22 10:05:40 +02:00
1 parent 8a38e46f95
commit 18bb8a8061
1 file changed
+9 -2
@@ -35,6 +35,7 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving;
import com.sap.sailing.domain.polars.NotEnoughDataHasBeenAddedException;
import com.sap.sailing.domain.polars.PolarDataService;
import com.sap.sailing.domain.polars.PolarsChangedListener;
import com.sap.sailing.domain.tracking.GPSFixTrack;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.polars.PolarDataOperation;
import com.sap.sailing.polars.mining.BearingClusterGroup;
@@ -236,8 +237,14 @@ public class PolarDataServiceImpl implements PolarDataService,
@Override
public void insertExistingFixes(TrackedRace trackedRace) {
for (Competitor competitor : trackedRace.getRace().getCompetitors()) {
for (GPSFixMoving fix : trackedRace.getTrack(competitor).getFixes()) {
competitorPositionChanged(fix, competitor, trackedRace);
GPSFixTrack<Competitor, GPSFixMoving> track = trackedRace.getTrack(competitor);
track.lockForRead();
try {
for (GPSFixMoving fix : track.getFixes()) {
competitorPositionChanged(fix, competitor, trackedRace);
}
} finally {
track.unlockAfterRead();
}
}
}