diff --git a/mobile/com.sap.sailing.racecommittee.app.test/.classpath b/mobile/com.sap.sailing.racecommittee.app.test/.classpath
new file mode 100755
index 00000000000..d2b47fd4ea9
--- /dev/null
+++ b/mobile/com.sap.sailing.racecommittee.app.test/.classpath
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/mobile/com.sap.sailing.racecommittee.app.test/.gitignore b/mobile/com.sap.sailing.racecommittee.app.test/.gitignore
new file mode 100755
index 00000000000..5e56e040ec0
--- /dev/null
+++ b/mobile/com.sap.sailing.racecommittee.app.test/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/mobile/com.sap.sailing.racecommittee.app.test/.project b/mobile/com.sap.sailing.racecommittee.app.test/.project
new file mode 100755
index 00000000000..009d7e4cc70
--- /dev/null
+++ b/mobile/com.sap.sailing.racecommittee.app.test/.project
@@ -0,0 +1,17 @@
+
+
+ com.sap.sailing.racecommittee.app.test
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/mobile/com.sap.sailing.racecommittee.app.test/.settings/org.eclipse.jdt.core.prefs b/mobile/com.sap.sailing.racecommittee.app.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..7341ab1683c
--- /dev/null
+++ b/mobile/com.sap.sailing.racecommittee.app.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
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
new file mode 100755
index 00000000000..609be590dc7
--- /dev/null
+++ b/mobile/com.sap.sailing.racecommittee.app.test/src/com/sap/sailing/racecommittee/app/test/IdentifierTest.java
@@ -0,0 +1,40 @@
+package com.sap.sailing.racecommittee.app.test;
+
+import static org.junit.Assert.assertFalse;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.junit.Test;
+
+import com.sap.sailing.domain.base.impl.BoatClassImpl;
+import com.sap.sailing.domain.base.impl.CourseAreaImpl;
+import com.sap.sailing.domain.base.impl.FleetImpl;
+import com.sap.sailing.domain.base.racegroup.RaceRow;
+import com.sap.sailing.domain.base.racegroup.SeriesWithRows;
+import com.sap.sailing.domain.base.racegroup.impl.RaceGroupImpl;
+import com.sap.sailing.domain.base.racegroup.impl.SeriesWithRowsImpl;
+import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier;
+import com.sap.sailing.racecommittee.app.domain.impl.FleetIdentifierImpl;
+import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceIdentifierImpl;
+
+public class IdentifierTest {
+ @Test
+ public void testManagedRaceIdentifierUniqueness() {
+ 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"), series1,
+ new RaceGroupImpl("jkl.mno\\", 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("mno.ghi", /* 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));
+ }
+}
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/AppConstants.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/AppConstants.java
index 9ea5a0d6c09..1fa2ddfe51b 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/AppConstants.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/AppConstants.java
@@ -15,6 +15,7 @@ public class AppConstants {
public final static String RACING_EVENT_TIME = "racingEventTime";
public final static String STARTPROCEDURE_SPECIFIC_EVENT_ID = "startProcedureSpecificEventId";
public final static String EXTRAS_JSON_SERIALIZED_EVENT = "json";
+ public final static String EXTRAS_EVENT_SENDER_RESPONSE_HANDLER_CALLBACK = "responseHandlerCallback";
public final static String EXTRAS_URL = "url";
public final static String OPTIONAL_EXTRAS = "optionalExtra";
public final static String FLAG_KEY = "raceFlag";
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 ca8e4518cec..faa884bc3bc 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.replace(".", "\\.");
+ return fragment./* this is probably the fix for bug 1524: replace("\\", "\\\\"). */ replace(".", "\\.");
}
}