diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LiveLeaderboardUpdater.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LiveLeaderboardUpdater.java index a2daad31a2b..298876d4a76 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LiveLeaderboardUpdater.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LiveLeaderboardUpdater.java @@ -227,7 +227,7 @@ public class LiveLeaderboardUpdater implements Runnable { timePointOfLastRequestForColumnDetails.put(nameOfRaceColumn, lastRequest); } } - if (addOverallDetails && timePointOfLastRequestForOverallDetails != null && lastRequest.after(timePointOfLastRequestForOverallDetails)) { + if (addOverallDetails && (timePointOfLastRequestForOverallDetails == null || lastRequest.after(timePointOfLastRequestForOverallDetails))) { timePointOfLastRequestForOverallDetails = lastRequest; } } @@ -236,10 +236,11 @@ public class LiveLeaderboardUpdater implements Runnable { * Updates the cache contents and notifies all waiters on this object. */ private synchronized void updateCacheContents(Collection namesOfRaceColumnsForWhichToLoadLegDetails, - LeaderboardDTO result) { + boolean addOverallDetails, LeaderboardDTO result) { columnNamesForWhichCurrentLiveLeaderboardHasTheDetails.clear(); columnNamesForWhichCurrentLiveLeaderboardHasTheDetails.addAll(namesOfRaceColumnsForWhichToLoadLegDetails); currentLiveLeaderboard = result; + currentLiveLeaderboardHasOverallDetails = addOverallDetails; notifyAll(); } @@ -275,7 +276,7 @@ public class LiveLeaderboardUpdater implements Runnable { LeaderboardDTO newCacheValue = leaderboard.computeDTO(timePoint, namesOfRaceColumnsForWhichToLoadLegDetails, addOverallDetails, /* waitForLatestAnalyses */false, trackedRegattaRegistry, baseDomainFactory); - updateCacheContents(namesOfRaceColumnsForWhichToLoadLegDetails, newCacheValue); + updateCacheContents(namesOfRaceColumnsForWhichToLoadLegDetails, addOverallDetails, newCacheValue); } catch (NoWindException e) { logger.info("Unable to update cached leaderboard results for leaderboard " + leaderboard.getName() + ": " + e.getMessage()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java index 74dbed95408..fb231a5ed61 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java @@ -1821,8 +1821,7 @@ public class LeaderboardPanel extends SimplePanel implements TimeListener, PlayS } private boolean shallAddOverallDetails() { - // TODO Auto-generated method stub - return true; + return !selectedOverallDetailColumns.isEmpty(); } /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 35a054f91ed..6f3a57233d6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -624,9 +624,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S result = incrementalResult; } logger.fine("getLeaderboardByName(" + leaderboardName + ", " + date + ", " - + namesOfRaceColumnsForWhichToLoadLegDetails + ") took " - + (System.currentTimeMillis() - startOfRequestHandling) + "ms; diff cache hits/misses " - + leaderboardDifferenceCacheByIdPairHits+"/"+leaderboardDifferenceCacheByIdPairMisses); + + namesOfRaceColumnsForWhichToLoadLegDetails + ", addOverallDetails=" + addOverallDetails + + ") took " + (System.currentTimeMillis() - startOfRequestHandling) + + "ms; diff cache hits/misses " + leaderboardDifferenceCacheByIdPairHits + "/" + + leaderboardDifferenceCacheByIdPairMisses); } return result; } catch (NoWindException e) {