16ce2279f6bec3ebb6925e89163c5776a869a781
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverhash/SerializableManeuverCache.java
| ... | ... | @@ -3,5 +3,10 @@ package com.sap.sailing.domain.maneuverhash; |
| 3 | 3 | import java.io.Serializable; |
| 4 | 4 | |
| 5 | 5 | public interface SerializableManeuverCache extends ManeuverCache, Serializable { |
| 6 | - |
|
| 6 | + /** |
|
| 7 | + * Should this serializable maneuver cache maintain a {@link ManeuverRaceFingerprintRegistry}, it won't be serializable. |
|
| 8 | + * Therefore, instances containing objects of this type must call this method after being de-serialized when they have |
|
| 9 | + * been wired correctly and have access to the {@link ManeuverRaceFingerprintRegistry}. |
|
| 10 | + */ |
|
| 11 | + void setManeuverRaceFingerprintRegistry(ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry); |
|
| 7 | 12 | } |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverhash/impl/ManeuverCacheDelegate.java
| ... | ... | @@ -22,7 +22,7 @@ public class ManeuverCacheDelegate implements SerializableManeuverCache { |
| 22 | 22 | private static final long serialVersionUID = 19872309587435L; |
| 23 | 23 | private final TrackedRaceImpl race; |
| 24 | 24 | private static final Logger logger = Logger.getLogger(ManeuverCacheDelegate.class.getName()); |
| 25 | - private final ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry; |
|
| 25 | + private transient ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry; |
|
| 26 | 26 | private volatile transient ManeuverCache cacheToUse; |
| 27 | 27 | |
| 28 | 28 | public ManeuverCacheDelegate(TrackedRaceImpl race, |
| ... | ... | @@ -43,6 +43,11 @@ public class ManeuverCacheDelegate implements SerializableManeuverCache { |
| 43 | 43 | oos.writeObject(new ManeuversFromDatabase(getAllKnownManeuvers())); |
| 44 | 44 | } |
| 45 | 45 | |
| 46 | + @Override |
|
| 47 | + public void setManeuverRaceFingerprintRegistry(ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 48 | + this.maneuverRaceFingerprintRegistry = maneuverRaceFingerprintRegistry; |
|
| 49 | + } |
|
| 50 | + |
|
| 46 | 51 | private Map<Competitor, List<Maneuver>> getAllKnownManeuvers() { |
| 47 | 52 | final Map<Competitor, List<Maneuver>> result = new HashMap<>(); |
| 48 | 53 | for (final Competitor competitor : race.getRace().getCompetitors()) { |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
| ... | ... | @@ -4450,4 +4450,8 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl |
| 4450 | 4450 | public ShortTimeAfterLastHitCache<Competitor, IncrementalManeuverDetector> getManeuverDetectorPerCompetitorCache() { |
| 4451 | 4451 | return maneuverDetectorPerCompetitorCache; |
| 4452 | 4452 | } |
| 4453 | + |
|
| 4454 | + public void setManeuverRaceFingerprintRegistry(ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 4455 | + maneuverCache.setManeuverRaceFingerprintRegistry(maneuverRaceFingerprintRegistry); |
|
| 4456 | + } |
|
| 4453 | 4457 | } |
java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java
| ... | ... | @@ -3759,6 +3759,7 @@ Replicator { |
| 3759 | 3759 | try { |
| 3760 | 3760 | for (TrackedRace trackedRace : trackedRegatta.getTrackedRaces()) { |
| 3761 | 3761 | ((TrackedRaceImpl) trackedRace).setRaceLogResolver(this); |
| 3762 | + ((TrackedRaceImpl) trackedRace).setManeuverRaceFingerprintRegistry(this); |
|
| 3762 | 3763 | ((TrackedRaceImpl) trackedRace).registerRegattaListener(); |
| 3763 | 3764 | trackedRace.initializeAfterDeserialization(); |
| 3764 | 3765 | } |