diff options
-rw-r--r-- | src/com/android/calendarcommon/EventRecurrence.java | 4 | ||||
-rw-r--r-- | tests/src/com/android/calendarcommon/EventRecurrenceTest.java | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/com/android/calendarcommon/EventRecurrence.java b/src/com/android/calendarcommon/EventRecurrence.java index cf2b410..ac03e45 100644 --- a/src/com/android/calendarcommon/EventRecurrence.java +++ b/src/com/android/calendarcommon/EventRecurrence.java @@ -598,6 +598,10 @@ public class EventRecurrence { parts = recur.split(";"); } for (String part : parts) { + // allow empty part (e.g., double semicolon ";;") + if (TextUtils.isEmpty(part)) { + continue; + } int equalIndex = part.indexOf('='); if (equalIndex <= 0) { /* no '=' or no LHS */ diff --git a/tests/src/com/android/calendarcommon/EventRecurrenceTest.java b/tests/src/com/android/calendarcommon/EventRecurrenceTest.java index a058adf..efd5f1c 100644 --- a/tests/src/com/android/calendarcommon/EventRecurrenceTest.java +++ b/tests/src/com/android/calendarcommon/EventRecurrenceTest.java @@ -843,6 +843,11 @@ public class EventRecurrenceTest extends TestCase { "INTERVAL=4;FREQ=YEARLY", "FREQ=DAILY;X-WHATEVER=blah", //"freq=daily;wkst=su", // mixed case currently not allowed + "FREQ=WEEKLY;INTERVAL=2;BYDAY=Mo;;UNTIL=20120327T000000Z", // double simicolon should be allowed + "FREQ=MONTHLY;BYDAY=1Mo", + "FREQ=MONTHLY;BYDAY=2Mo,2We,4Mo,4We", + "FREQ=MONTHLY;WKST=SU;BYMONTHDAY=25;UNTIL=20110524", + "FREQ=WEEKLY;BYDAY=MO;WKST=SU;UNTIL=20111218T010000Z" }; /** The parser must reject these. */ |