mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 09:26:44 +00:00
made robust against missing canSendRequest in DB; added logging for getLeaderboardByName handling time;
remove race from default leaderboard if tracking of single race was stopped
This commit is contained in:
+2
-1
@@ -85,10 +85,11 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers
|
||||
}
|
||||
|
||||
private SwissTimingConfiguration loadSwissTimingConfiguration(DBObject object) {
|
||||
Boolean canSendRequests = (Boolean) object.get(FieldNames.ST_CONFIG_CAN_SEND_REQUESTS.name());
|
||||
return swissTimingFactory.createSwissTimingConfiguration((String) object.get(FieldNames.ST_CONFIG_NAME.name()),
|
||||
(String) object.get(FieldNames.ST_CONFIG_HOSTNAME.name()),
|
||||
(Integer) object.get(FieldNames.ST_CONFIG_PORT.name()),
|
||||
(Boolean) object.get(FieldNames.ST_CONFIG_CAN_SEND_REQUESTS.name()));
|
||||
canSendRequests==null?false:canSendRequests);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+6
@@ -18,6 +18,7 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.osgi.util.tracker.ServiceTracker;
|
||||
@@ -97,6 +98,8 @@ import com.sap.sailing.util.CountryCode;
|
||||
* The server side implementation of the RPC service.
|
||||
*/
|
||||
public class SailingServiceImpl extends RemoteServiceServlet implements SailingService {
|
||||
private static final Logger logger = Logger.getLogger(SailingServiceImpl.class.getName());
|
||||
|
||||
private static final long serialVersionUID = 9031688830194537489L;
|
||||
|
||||
private static final long TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS = 60000;
|
||||
@@ -136,6 +139,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
|
||||
public LeaderboardDAO getLeaderboardByName(String leaderboardName, Date date,
|
||||
Collection<String> namesOfRacesForWhichToLoadLegDetails) throws Exception {
|
||||
long startOfRequestHandling = System.currentTimeMillis();
|
||||
LeaderboardDAO result = null;
|
||||
Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardName);
|
||||
if (leaderboard != null) {
|
||||
@@ -173,6 +177,8 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.fine("getLeaderboardByName("+leaderboardName+", "+date+", "+namesOfRacesForWhichToLoadLegDetails+") took "+
|
||||
(System.currentTimeMillis()-startOfRequestHandling)+"ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -417,6 +417,11 @@ public class RacingEventServiceImpl implements RacingEventService {
|
||||
raceTracker.stop(); // this also removes the TrackedRace from trackedEvent
|
||||
trackerIter.remove();
|
||||
raceTrackersByID.remove(raceTracker.getID());
|
||||
for (RaceDefinition trackerRace : raceTracker.getRaces()) {
|
||||
// remove from default leaderboard
|
||||
Leaderboard defaultLeaderboard = getLeaderboardByName(DEFAULT_LEADERBOARD_NAME);
|
||||
defaultLeaderboard.removeRaceColumn(trackerRace.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user