diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/FixLoaderAndTracker.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/FixLoaderAndTracker.java index 0eb35f57306..84ffc36ce99 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/FixLoaderAndTracker.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/FixLoaderAndTracker.java @@ -308,15 +308,18 @@ public class FixLoaderAndTracker implements TrackingDataLoader { updateCallback.run(); } } finally { - synchronized (FixLoaderAndTracker.this) { - int currentActiveLoaders = activeLoaders.decrementAndGet(); - FixLoaderAndTracker.this.notifyAll(); - if (currentActiveLoaders == 0) { - setStatusAndProgress(stopRequested.get() ? TrackedRaceStatusEnum.FINISHED - : TrackedRaceStatusEnum.TRACKING, 1.0); + try { + synchronized (FixLoaderAndTracker.this) { + int currentActiveLoaders = activeLoaders.decrementAndGet(); + FixLoaderAndTracker.this.notifyAll(); + if (currentActiveLoaders == 0) { + setStatusAndProgress(stopRequested.get() ? TrackedRaceStatusEnum.FINISHED + : TrackedRaceStatusEnum.TRACKING, 1.0); + } } + } finally { + trackedRace.unlockAfterSerializationRead(); } - trackedRace.unlockAfterSerializationRead(); } } });