diff --git a/mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java b/mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java index 609be590dc7..0a725bc849c 100755 --- a/mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java +++ b/mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java @@ -37,4 +37,42 @@ public class IdentifierTest { assertFalse(i1ID.equals(i2ID)); } + + @Test + public void testManagedRaceIdentifierUniqueness2() { + final Set raceRows1 = Collections.emptySet(); + final SeriesWithRows series1 = new SeriesWithRowsImpl("ghi\\", /* isMedal */ false, /* raceRows */ raceRows1); + final Set raceGroupSeries1 = Collections.singleton(series1); + ManagedRaceIdentifier i1 = new ManagedRaceIdentifierImpl("abc", new FleetIdentifierImpl(new FleetImpl("mno.def"), series1, + new RaceGroupImpl("jkl", new BoatClassImpl("505", /* typicallyStartsUpwind */ true), new CourseAreaImpl("Alpha", "Alpha ID"), raceGroupSeries1))); + String i1ID = i1.getId().toString(); + + final Set raceRows2 = Collections.emptySet(); + final SeriesWithRows series2 = new SeriesWithRowsImpl("ghi.mno\\", /* isMedal */ false, /* raceRows */ raceRows2); + final Set raceGroupSeries2 = Collections.singleton(series2); + ManagedRaceIdentifier i2 = new ManagedRaceIdentifierImpl("abc", new FleetIdentifierImpl(new FleetImpl("def"), series2, + new RaceGroupImpl("jkl", new BoatClassImpl("505", /* typicallyStartsUpwind */ true), new CourseAreaImpl("Alpha", "Alpha ID"), raceGroupSeries2))); + String i2ID = i2.getId().toString(); + + assertFalse(i1ID.equals(i2ID)); + } + + @Test + public void testManagedRaceIdentifierUniqueness3() { + final Set raceRows1 = Collections.emptySet(); + final SeriesWithRows series1 = new SeriesWithRowsImpl("ghi", /* isMedal */ false, /* raceRows */ raceRows1); + final Set raceGroupSeries1 = Collections.singleton(series1); + ManagedRaceIdentifier i1 = new ManagedRaceIdentifierImpl("abc", new FleetIdentifierImpl(new FleetImpl("def.mno\\"), series1, + new RaceGroupImpl("jkl", new BoatClassImpl("505", /* typicallyStartsUpwind */ true), new CourseAreaImpl("Alpha", "Alpha ID"), raceGroupSeries1))); + String i1ID = i1.getId().toString(); + + final Set raceRows2 = Collections.emptySet(); + final SeriesWithRows series2 = new SeriesWithRowsImpl("ghi", /* isMedal */ false, /* raceRows */ raceRows2); + final Set raceGroupSeries2 = Collections.singleton(series2); + ManagedRaceIdentifier i2 = new ManagedRaceIdentifierImpl("mno.abc", new FleetIdentifierImpl(new FleetImpl("def\\"), series2, + new RaceGroupImpl("jkl", new BoatClassImpl("505", /* typicallyStartsUpwind */ true), new CourseAreaImpl("Alpha", "Alpha ID"), raceGroupSeries2))); + String i2ID = i2.getId().toString(); + + assertFalse(i1ID.equals(i2ID)); + } } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java index faa884bc3bc..0d4f76753d7 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java @@ -39,7 +39,7 @@ public class FleetIdentifierImpl implements FleetIdentifier { } protected String escapeIdentifierFragment(String fragment) { - return fragment./* this is probably the fix for bug 1524: replace("\\", "\\\\"). */ replace(".", "\\."); + return fragment.replace("\\", "\\\\").replace(".", "\\."); } }