fixing bug 1506 by adding a null check; loading leaderboards with no leaderboard selected was the problem

This commit is contained in:
Axel Uhl committed 2013-09-11 10:04:55 +02:00
1 parent 1561f2c59a
commit f355770c1b
2 files changed
+30 -26

No files matched your search

@@ -816,32 +816,36 @@ public class LeaderboardConfigPanel extends FormPanel implements SelectedLeaderb
private void selectTrackedRaceInRaceList() {
final String selectedLeaderboardName = getSelectedLeaderboardName();
final RaceColumnDTOAndFleetDTOWithNameBasedEquality selectedRaceColumnAndFleetNameInLeaderboard = getSelectedRaceColumnWithFleet();
final String selectedRaceColumnName = selectedRaceColumnAndFleetNameInLeaderboard.getA().getRaceColumnName();
final String selectedFleetName = selectedRaceColumnAndFleetNameInLeaderboard.getB().getName();
sailingService.getRegattaAndRaceNameOfTrackedRaceConnectedToLeaderboardColumn(selectedLeaderboardName,
selectedRaceColumnName, new AsyncCallback<Map<String, RegattaAndRaceIdentifier>>() {
@Override
public void onFailure(Throwable t) {
errorReporter.reportError("Error trying to determine tracked race linked to race column "
+ selectedRaceColumnName + " in leaderboard " + selectedLeaderboardName + ": "
+ t.getMessage());
}
if (selectedLeaderboardName != null) {
final RaceColumnDTOAndFleetDTOWithNameBasedEquality selectedRaceColumnAndFleetNameInLeaderboard = getSelectedRaceColumnWithFleet();
final String selectedRaceColumnName = selectedRaceColumnAndFleetNameInLeaderboard.getA()
.getRaceColumnName();
final String selectedFleetName = selectedRaceColumnAndFleetNameInLeaderboard.getB().getName();
sailingService.getRegattaAndRaceNameOfTrackedRaceConnectedToLeaderboardColumn(selectedLeaderboardName,
selectedRaceColumnName, new AsyncCallback<Map<String, RegattaAndRaceIdentifier>>() {
@Override
public void onFailure(Throwable t) {
errorReporter.reportError("Error trying to determine tracked race linked to race column "
+ selectedRaceColumnName + " in leaderboard " + selectedLeaderboardName + ": "
+ t.getMessage());
}
@Override
public void onSuccess(Map<String, RegattaAndRaceIdentifier> regattaAndRaceNamesPerFleet) {
if (regattaAndRaceNamesPerFleet != null && !regattaAndRaceNamesPerFleet.isEmpty()) {
RegattaAndRaceIdentifier raceIdentifier = regattaAndRaceNamesPerFleet.get(selectedFleetName);
if (raceIdentifier != null) {
selectRaceInList(raceIdentifier.getRegattaName(), raceIdentifier.getRaceName());
} else {
trackedRacesListComposite.clearSelection();
}
} else {
trackedRacesListComposite.clearSelection();
}
}
});
@Override
public void onSuccess(Map<String, RegattaAndRaceIdentifier> regattaAndRaceNamesPerFleet) {
if (regattaAndRaceNamesPerFleet != null && !regattaAndRaceNamesPerFleet.isEmpty()) {
RegattaAndRaceIdentifier raceIdentifier = regattaAndRaceNamesPerFleet
.get(selectedFleetName);
if (raceIdentifier != null) {
selectRaceInList(raceIdentifier.getRegattaName(), raceIdentifier.getRaceName());
} else {
trackedRacesListComposite.clearSelection();
}
} else {
trackedRacesListComposite.clearSelection();
}
}
});
}
}
private void selectRaceInList(String regattaName, String raceName) {
@@ -582,7 +582,7 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
@Override
public void removeLeaderboard(String leaderboardName) {
Leaderboard leaderboard = removeLeaderboardFromLeaderboardsByName(leaderboardName);
if(leaderboard != null) {
if (leaderboard != null) {
leaderboard.removeRaceColumnListener(raceLogReplicator);
leaderboard.removeRaceColumnListener(raceLogScoringReplicator);
mongoObjectFactory.removeLeaderboard(leaderboardName);