diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/IncrementalLeaderboardDTO.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/IncrementalLeaderboardDTO.java index 0313548cdc1..5e1f969b096 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/IncrementalLeaderboardDTO.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/IncrementalLeaderboardDTO.java @@ -440,6 +440,11 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme if (rows == null) { rows = new HashMap(); } + // expand all keys and remove values from compact keys and re-enter with expanded keys + for (CompetitorDTO compactCompetitor : new ArrayList(rows.keySet())) { + final CompetitorDTO expandedCompetitor = compactCompetitor.getCompetitorFromPrevious(previousVersion); + rows.put(expandedCompetitor, rows.remove(compactCompetitor)); + } for (Pair rowUnchanged : rowsUnchanged.getAllUnchangedCompetitorsAndKeys(previousVersion)) { rowsUnchangedForCompetitors.add(rowUnchanged.getA()); rows.put(rowUnchanged.getA(), previousVersion.rows.get(rowUnchanged.getA())); @@ -590,7 +595,7 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme } else { LeaderboardRowDTO newRowDTO = new LeaderboardRowDTO(); cloner.clone(competitorAndRow.getValue(), newRowDTO); - newRows.put(competitorAndRow.getKey(), newRowDTO); + newRows.put(compactCompetitorMap.get(competitorAndRow.getKey()), newRowDTO); HashMap newFieldsByRaceColumnName = new HashMap(); for (Map.Entry raceColumnNameAndLeaderboardEntry : newRowDTO.fieldsByRaceColumnName.entrySet()) { LeaderboardEntryDTO previousEntryDTO = null; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java index 6091434108c..6f5653b805c 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java @@ -97,8 +97,9 @@ public class LeaderboardDTODiffingTest { Map rowsBeforeStripping = newVersion.rows; newVersion.strip(previousVersion); assertNotNull(newVersion.rows); - assertEquals(1, newVersion.rows.size()); // only wolfgang's row show show - assertTrue(newVersion.rows.get(wolfgang).fieldsByRaceColumnName.isEmpty()); + assertEquals(1, newVersion.rows.size()); // only wolfgang's row should show + assertEquals(wolfgang, newVersion.rows.keySet().iterator().next().getCompetitorFromPrevious(previousVersion)); + assertTrue(newVersion.rows.values().iterator().next().fieldsByRaceColumnName.isEmpty()); LeaderboardDTO applied = newVersion.getLeaderboardDTO(previousVersion); assertEquals(rowsBeforeStripping, applied.rows); } @@ -255,5 +256,4 @@ public class LeaderboardDTODiffingTest { LeaderboardDTO applied = newVersion.getLeaderboardDTO(previousVersion); assertEquals(newOrderBeforeStripping, applied.getCompetitorsFromBestToWorst(applied.getRaceColumnByName("R9"))); } - }