by default, it uses "SAP Sailing Analytics" as the application name; if the system property
com.sap.sailing.server.name is set, its value will be used instead
Change-Id: Iae57b193cfca613dd1aab8df20466ff42472c97e
this allows us to use only start times *without* start mark passing inference in the mark passing calculator
which otherwise would lead to a conceptual recursion where mark passings may be excluded because other mark
passings have previously been inferred at a later point, suggesting a later start, ruling out earlier start
mark passings.
Change-Id: I9b5a530e388bfbc3e0fb91845ec892f288d403bd
the issue was related to the syncGroupsAfterLeaderboardChange method which was based on the assumption that there may be
changes in Leaderboard Java object identity while still meaning the same leaderboard. This would have forced a replacement
of listeners and an update of the leaderboards list in the LeaderboardGroup. Furthermore, LeaderboardGroup used to refer to
the leaderboard by name in the database. This forced an update to the persistent copy of the leaderboard group when the
leaderboard's name changed. Today, this link is based on a MongoDB ObjectId, so no update of the leaderboard group is
necessary any more.
The root cause was a threading issue: iterating over a copy of the leaderboards list of the leaderboard group, then
looking for the old position of the leaderboard in that list, then removing it, then adding it again at the old index.
If this is not atomically locked (which it used to be up to commit 118f03fbb5 when
coarse-grained synchronization was replaced by more fine-grained locking inside the LeaderboardGroupImpl methods) then
one of two concurrent removals for the same leaderboard may not find the leaderboard anymore, yet the second add is
carried out, leading to a duplication; or the first thread gets the index before the second thread removes; then
the first thread adds at an incorrect index.
Change-Id: Ib47ba715c77221fa353fa4669662e5f48d8e5857
Conflicts:
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/startanalysis/StartlineAnalysisCard.java
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java
Besides whitespace conflicts there was a conflict introduced by the addition of the streamlet colors setting in the
RaceBoardPanel constructor
existing regatta and race logs for imported races are now cleared if
override flag is set.
If override is not set and the log is not empty, the imported log will not
be applied.