diff --git a/src/main/java/ezvcard/io/scribe/DateOrTimePropertyScribe.java b/src/main/java/ezvcard/io/scribe/DateOrTimePropertyScribe.java index 72ec37ac..6a71ad3c 100644 --- a/src/main/java/ezvcard/io/scribe/DateOrTimePropertyScribe.java +++ b/src/main/java/ezvcard/io/scribe/DateOrTimePropertyScribe.java @@ -221,13 +221,12 @@ private T parse(String value, ParseContext context) { try { return newInstance(date(value)); } catch (IllegalArgumentException e) { - if (context.getVersion() == VCardVersion.V2_1 || context.getVersion() == VCardVersion.V3_0) { - throw new CannotParseException(5); - } - try { return newInstance(PartialDate.parse(value)); } catch (IllegalArgumentException e2) { + if (context.getVersion() == VCardVersion.V2_1 || context.getVersion() == VCardVersion.V3_0) { + throw new CannotParseException(5); + } context.addWarning(6); return newInstance(value); } diff --git a/src/test/java/ezvcard/io/scribe/DateOrTimePropertyScribeTest.java b/src/test/java/ezvcard/io/scribe/DateOrTimePropertyScribeTest.java index d58ed4ea..b03726ac 100644 --- a/src/test/java/ezvcard/io/scribe/DateOrTimePropertyScribeTest.java +++ b/src/test/java/ezvcard/io/scribe/DateOrTimePropertyScribeTest.java @@ -161,12 +161,9 @@ public void writeJson() { public void parseText() { sensei.assertParseText(dateExtendedStr).run(withDate); sensei.assertParseText(dateTimeExtendedStr).run(withDateTime); - sensei.assertParseText(partialDate.toISO8601(false)).versions(V2_1, V3_0).cannotParse(5); - sensei.assertParseText(partialDate.toISO8601(false)).versions(V4_0).run(withPartialDate); - sensei.assertParseText(partialTime.toISO8601(false)).versions(V2_1, V3_0).cannotParse(5); - sensei.assertParseText(partialTime.toISO8601(false)).versions(V4_0).run(withPartialTime); - sensei.assertParseText(partialDateTime.toISO8601(false)).versions(V2_1, V3_0).cannotParse(5); - sensei.assertParseText(partialDateTime.toISO8601(false)).versions(V4_0).run(withPartialDateTime); + sensei.assertParseText(partialDate.toISO8601(false)).run(withPartialDate); + sensei.assertParseText(partialTime.toISO8601(false)).run(withPartialTime); + sensei.assertParseText(partialDateTime.toISO8601(false)).run(withPartialDateTime); sensei.assertParseText(text).versions(V2_1, V3_0).cannotParse(5); sensei.assertParseText(text).versions(V4_0).warnings(6).run(hasText(text)); sensei.assertParseText(text).versions(V2_1, V3_0).dataType(TEXT).cannotParse(5);