diff --git a/core/src/com/google/zxing/client/result/CalendarParsedResult.java b/core/src/com/google/zxing/client/result/CalendarParsedResult.java index 4b2b7eb36..8c4a40505 100644 --- a/core/src/com/google/zxing/client/result/CalendarParsedResult.java +++ b/core/src/com/google/zxing/client/result/CalendarParsedResult.java @@ -35,6 +35,10 @@ public final class CalendarParsedResult extends ParsedResult { String attendee, String title) { super(ParsedResultType.CALENDAR); + // Start is required, end is not + if (start == null) { + throw new IllegalArgumentException(); + } validateDate(start); validateDate(end); this.summary = summary; diff --git a/core/test/src/com/google/zxing/client/result/ParsedReaderResultTestCase.java b/core/test/src/com/google/zxing/client/result/ParsedReaderResultTestCase.java index 0a69d238b..b8f96976a 100644 --- a/core/test/src/com/google/zxing/client/result/ParsedReaderResultTestCase.java +++ b/core/test/src/com/google/zxing/client/result/ParsedReaderResultTestCase.java @@ -142,6 +142,9 @@ public final class ParsedReaderResultTestCase extends TestCase { doTestResult("BEGIN:VEVENT\r\nSUMMARY:foo\r\nDTSTART:20080504\r\nEND:VEVENT", ParsedResultType.CALENDAR); doTestResult("BEGIN:VEVENT\r\nDTEND:20080505T\r\nEND:VEVENT", ParsedResultType.TEXT); + // Make sure illegal entries without newlines don't crash + doTestResult("BEGIN:VEVENTSUMMARY:EventDTSTART:20081030T122030ZDTEND:20081030T132030ZEND:VEVENT", + ParsedResultType.URI); doTestResult("BEGIN:VEVENT", ParsedResultType.URI); // See above note on why this is URI }