fixing bug 723 by queuing Operations until initial load has completed

This commit is contained in:
Axel Uhl committed 2012-06-07 18:20:51 +02:00
1 parent 348c66e5cf
commit f4928da853
5 files changed
+113 -16

No files matched your search

@@ -1,10 +1,13 @@
package com.sap.sailing.server.operationaltransformation;
import java.util.logging.Logger;
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.RacingEventServiceOperation;
public class CreateFlexibleLeaderboard extends AbstractLeaderboardOperation<FlexibleLeaderboard> {
private static final Logger logger = Logger.getLogger(CreateFlexibleLeaderboard.class.getName());
private static final long serialVersionUID = 891352705068098580L;
private final int[] discardThresholds;
@@ -15,7 +18,13 @@ public class CreateFlexibleLeaderboard extends AbstractLeaderboardOperation<Flex
@Override
public FlexibleLeaderboard internalApplyTo(RacingEventService toState) {
return toState.addFlexibleLeaderboard(getLeaderboardName(), discardThresholds);
FlexibleLeaderboard result = null;
if (toState.getLeaderboardByName(getLeaderboardName()) == null) {
result = toState.addFlexibleLeaderboard(getLeaderboardName(), discardThresholds);
} else {
logger.warning("Cannot replicate creation of flexible leaderboard "+getLeaderboardName()+" because it already exists in the replica");
}
return result;
}
@Override