Merge remote-tracking branch 'origin/master' into foiling

Conflicts:
	java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogDeviceMappings.java
This commit is contained in:
Steffen Schaefer committed 2016-09-26 15:37:20 +02:00
commit de5e5a34a3
9 files changed
+23 -24

No files matched your search

@@ -266,8 +266,8 @@ public abstract class RegattaLogDeviceMappings<ItemT extends WithID> {
Map<ItemT, List<DeviceMappingWithRegattaLogEvent<ItemT>>> newMappings) {
Set<ItemT> itemsToProcess = new HashSet<ItemT>(previousMappings.keySet());
itemsToProcess.addAll(newMappings.keySet());
for(ItemT item : itemsToProcess) {
if(!newMappings.containsKey(item)) {
for (ItemT item : itemsToProcess) {
if (!newMappings.containsKey(item)) {
previousMappings.get(item).forEach(this::mappingRemovedInternal);
} else {
final List<DeviceMappingWithRegattaLogEvent<ItemT>> oldMappings = previousMappings.containsKey(item)
@@ -291,7 +291,7 @@ public class MarkPassingCalculator {
try {
executor.invokeAll(tasks);
} catch (InterruptedException e) {
e.printStackTrace();
logger.log(Level.INFO, "mark passing calculation interrupted", e);
}
}
@@ -23,7 +23,7 @@ public abstract class TrackedRaceWithWindEssentials implements TrackedRace {
private static final Logger logger = Logger.getLogger(TrackedRaceWithWindEssentials.class.getName());
/**
* Serializing an instance of this class has to serialized the various data structures holding the tracked race's
* Serializing an instance of this class has to serialize the various data structures holding the tracked race's
* state. When a race is currently on, these structures change very frequently, and
* {@link ConcurrentModificationException}s during serialization will be the norm rather than the exception. To
* avoid this, all modifications to any data structure that is not in itself synchronized obtains this lock's
@@ -146,7 +146,4 @@ public abstract class TrackedRaceWithWindEssentials implements TrackedRace {
protected NamedReentrantReadWriteLock getSerializationLock() {
return serializationLock;
}
}
@@ -762,10 +762,12 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
* </ol>
*/
public void updateStartAndEndOfTracking(boolean waitForGPSFixesToLoad) {
final TimePoint oldStartOfTracking;
final TimePoint oldEndOfTracking;
synchronized (updateStartAndEndOfTrackingMonitor) {
final Pair<TimePointSpecificationFoundInLog, TimePointSpecificationFoundInLog> trackingTimesFromRaceLog = this.getTrackingTimesFromRaceLogs();
TimePoint oldStartOfTracking = getStartOfTracking();
TimePoint oldEndOfTracking = getEndOfTracking();
oldStartOfTracking = getStartOfTracking();
oldEndOfTracking = getEndOfTracking();
boolean startOfTrackingFound = false;
boolean endOfTrackingFound = false;
// check race log
@@ -801,9 +803,9 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
endOfTrackingFound = true;
}
}
startOfTrackingChanged(oldStartOfTracking, waitForGPSFixesToLoad);
endOfTrackingChanged(oldEndOfTracking, waitForGPSFixesToLoad);
}
startOfTrackingChanged(oldStartOfTracking, waitForGPSFixesToLoad);
endOfTrackingChanged(oldEndOfTracking, waitForGPSFixesToLoad);
}
@Override
@@ -96,4 +96,9 @@ public class ExpeditionWindTrackerFactory implements WindTrackerFactory {
windReceivers.remove(windTracker.getReceiver().getPort());
}
}
@Override
public String toString() {
return "ExpeditionWindTrackerFactory [defaultPort=" + defaultPort + "]";
}
}
@@ -1139,7 +1139,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
* can be obtained within this timeout, wind for the race will be tracked; otherwise, the method returns without
* taking any effect.
*/
private void startTrackingWind(RaceHandle raceHandle, boolean correctByDeclination, long timeoutInMilliseconds) throws Exception {
private void startTrackingWind(RaceHandle raceHandle, boolean correctByDeclination, long timeoutInMilliseconds) {
Regatta regatta = raceHandle.getRegatta();
if (regatta != null) {
RaceDefinition race = raceHandle.getRace(timeoutInMilliseconds);
@@ -189,7 +189,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
* @throws SocketException
* thrown, e.g., in case there is already another listener on the port requested
*/
void startTrackingWind(Regatta regatta, RaceDefinition race, boolean correctByDeclination) throws Exception;
void startTrackingWind(Regatta regatta, RaceDefinition race, boolean correctByDeclination);
void stopTrackingWind(Regatta regatta, RaceDefinition race) throws SocketException, IOException;
@@ -2291,9 +2291,13 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
}
@Override
public void startTrackingWind(Regatta regatta, RaceDefinition race, boolean correctByDeclination) throws Exception {
public void startTrackingWind(Regatta regatta, RaceDefinition race, boolean correctByDeclination) {
for (WindTrackerFactory windTrackerFactory : getWindTrackerFactories()) {
windTrackerFactory.createWindTracker(getOrCreateTrackedRegatta(regatta), race, correctByDeclination);
try {
windTrackerFactory.createWindTracker(getOrCreateTrackedRegatta(regatta), race, correctByDeclination);
} catch (Exception e) {
logger.log(Level.SEVERE, "Error trying to track wind using wind tracker factory "+windTrackerFactory, e);
}
}
}