1.6.2: broken sync of events presumably with fields with long lines



  • Exception from logcat:

    06-25 16:07:58.684 28777  4347 E davdroid: [syncadapter.CalendarSyncManager] Received invalid iCalendar, ignoring
    06-25 16:07:58.684 28777  4347 E davdroid: EXCEPTION at.bitfire.ical4android.InvalidCalendarException: Couldn't parse iCalendar resource
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.ical4android.Event$Companion.fromStream(Event.kt:91)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.ical4android.Event$Companion.fromStream$default(Event.kt:80)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.ical4android.Event.fromStream(Event.kt)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.processVEvent(CalendarSyncManager.java:221)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.davdroid.syncadapter.CalendarSyncManager.downloadRemote(CalendarSyncManager.java:204)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.java:179)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.davdroid.syncadapter.CalendarsSyncAdapterService$SyncAdapter.sync(CalendarsSyncAdapterService.java:69)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.davdroid.syncadapter.SyncAdapterService$SyncAdapter.onPerformSync(SyncAdapterService.java:85)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)
    06-25 16:07:58.684 28777  4347 E davdroid: Caused by: net.fortuna.ical4j.data.ParserException: Error at line 13:Illegal property [ T TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TES]
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:143)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:198)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:178)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at at.bitfire.ical4android.Event$Companion.fromStream(Event.kt:87)
    06-25 16:07:58.684 28777  4347 E davdroid: 	... 8 more
    06-25 16:07:58.684 28777  4347 E davdroid: Caused by: java.lang.IllegalArgumentException: Illegal property [ T TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TES]
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.model.PropertyFactoryImpl.createProperty(PropertyFactoryImpl.java:86)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarBuilder$ContentHandlerImpl.startProperty(CalendarBuilder.java:326)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.parse(CalendarParserImpl.java:206)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.access$1100(CalendarParserImpl.java:190)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:173)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.parse(CalendarParserImpl.java:383)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.access$900(CalendarParserImpl.java:367)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:171)
    06-25 16:07:58.684 28777  4347 E davdroid: 	at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:122)
    06-25 16:07:58.684 28777  4347 E davdroid: 	... 11 more
    

    Example of broken event


  • developer

    Can't reproduce.

    Logs: Illegal property [ T TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TES] in upper case, uploaded ics: test in lower case

    Why?



  • @rfc2822 said in 1.6.2: broken sync of events presumably with fields with long lines:

    Can't reproduce.

    Strange, but me either.
    I've tried upgrading on another device and it works. I've downgraded affected device (with app data loss) than upgraded — again, works. Play Store version.

    Logs: Illegal property [ T TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TES] in upper case, uploaded ics: test in lower case

    No idea. I'd suppose that parser for some reason does not detects continuation lines and assumes that part of the line before ':' is field title and converts it to uppercase. Haven't looked into the code (I'm not familiar with Kotlin and Java), it's just an assumption.