From 71aae73e34386d5ebb92bb2e61709cba221ad57f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 24 Jun 2016 08:24:43 +0200 Subject: [PATCH] re-establish race state start time change listeners in readObject() method of DynamicTrackedRaceImpl Change-Id: Iafd9bed9fb335e3a08e47fca28d57dc16778aee3 --- .../sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java | 5 +++++ .../sap/sailing/domain/tracking/impl/TrackedRaceImpl.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java index 8076e915456..49625efa32f 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java @@ -140,6 +140,11 @@ DynamicTrackedRace, GPSTrackListener { private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { ois.defaultReadObject(); raceStateBasedStartTimeChangedListener = createRaceStateStartTimeChangeListener(); + // the race states are transient, therefore not serialized; they are re-constructed here when asked for; + // the transient raceStateBasedStartTimeChangedListener is re-added here, like it was in attachRaceLog(...) + for (final RaceLog raceLog : attachedRaceLogs.values()) { + getRaceState(raceLog).addChangedListener(raceStateBasedStartTimeChangedListener); + } listeners = new HashSet(); logListener = new DynamicTrackedRaceLogListener(this); courseDesignChangedListeners = new HashSet<>(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java index 43f0001d3ef..9d8ad67a060 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java @@ -905,7 +905,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl * and not {@link Object}. */ private final String updateStartOfRaceCacheFieldsMonitor = ""; - protected void updateStartOfRaceCacheFields() { + protected void updateStartOfRaceCacheFields() { synchronized (updateStartOfRaceCacheFieldsMonitor) { TimePoint newStartTime = null; TimePoint newStartTimeWithoutInferenceFromStartMarkPassings = null;