Marking a task as done doesn't sync from Tine 2.0 server to phone

0

I'm using the latestest DAVDroid version (Playstore, payed) with a Tine 2.0 Community Edition (latest version).

CalDAV and CardDAV syncing apparently works fine both ways, automated and manually.
Except when I mark a task as done in the Tine 2.0 web UI: That task will still be marked as undone in the tasks app (I use OpenTasks).
Checking a task as done on the phone and syncing correctly results in the task being marked as done in the web UI.

Debug info:
https://paste.fedoraproject.org/paste/bQgxvAlbUSoiQyqDUxeZ-Q#

0

In our tests, syncing tasks with STATUS:COMPLETED works as expected.

Does this work with other clients? Maybe it's a Tine problem.

Temporal relations are not necessarily causal relations.

0

It works with CalDAV Sync (which has other unadressed issues).

I'd be glad to feed any further data required to resolve this, if you guide me how to retrieve them.

0

Can you provide a publicly accesible test account so that I can try?

Temporal relations are not necessarily causal relations.

0

@rfc2822 I can give you an account. Can I send you the credentials via chat or any other way?

0

Thanks for the test account, which I could use to reproduce the problem. When marking a task as completed in Tine, it sends an invalid VTODO:

BEGIN:VCALENDAR
...
BEGIN:VTODO
UID:9a702d11179f789746f83c4d67aeb2bfd3b6f511
...
!!! COMPLETED;TZID=Europe/Berlin:20171025T184600 !!!
STATUS:COMPLETED
...
END:VTODO
END:VCALENDAR

ical4j (the iCal parser used by DAVdroid) can't parse this:

10-25 18:46:39.172 8278-8296/at.bitfire.davdroid:sync E/davdroid: [syncadapter.TasksSyncManager] Received invalid iCalendar, ignoring
  EXCEPTION at.bitfire.ical4android.InvalidCalendarException: Couldn't parse iCalendar resource
      at at.bitfire.ical4android.Task$Companion.fromReader(Task.kt:70)
      at at.bitfire.davdroid.syncadapter.TasksSyncManager.processVTodo(TasksSyncManager.kt:164)
      at at.bitfire.davdroid.syncadapter.TasksSyncManager.downloadRemote(TasksSyncManager.kt:128)
      at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.kt:155)
      at at.bitfire.davdroid.syncadapter.TasksSyncAdapterService$SyncAdapter.sync(TasksSyncAdapterService.kt:55)
      at at.bitfire.davdroid.syncadapter.SyncAdapterService$SyncAdapter.onPerformSync(SyncAdapterService.kt:85)
      at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)
   Caused by: net.fortuna.ical4j.data.ParserException: Error at line 28:Cannot set timezone for UTC properties
      at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:158)
      at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:198)
      at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:178)
      at at.bitfire.ical4android.Task$Companion.fromReader(Task.kt:68)
      at at.bitfire.davdroid.syncadapter.TasksSyncManager.processVTodo(TasksSyncManager.kt:164) 
      at at.bitfire.davdroid.syncadapter.TasksSyncManager.downloadRemote(TasksSyncManager.kt:128) 
      at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.kt:155) 
      at at.bitfire.davdroid.syncadapter.TasksSyncAdapterService$SyncAdapter.sync(TasksSyncAdapterService.kt:55) 
      at at.bitfire.davdroid.syncadapter.SyncAdapterService$SyncAdapter.onPerformSync(SyncAdapterService.kt:85) 
      at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272) 
   Caused by: java.lang.UnsupportedOperationException: Cannot set timezone for UTC properties
      at net.fortuna.ical4j.model.property.UtcProperty.setTimeZone(UtcProperty.java:95)
      at net.fortuna.ical4j.data.CalendarBuilder.updateTimeZone(CalendarBuilder.java:353)
      at net.fortuna.ical4j.data.CalendarBuilder.access$300(CalendarBuilder.java:68)
      at net.fortuna.ical4j.data.CalendarBuilder$ContentHandlerImpl.parameter(CalendarBuilder.java:278)
      at net.fortuna.ical4j.data.CalendarParserImpl$ParameterParser.parse(CalendarParserImpl.java:367)

because COMPLETED is defined as an UTC property:

[https://tools.ietf.org/html/rfc5545#section-3.8.2.1]
Property Name: COMPLETED
Conformance: The property can be specified in a "VTODO" calendar component. The value MUST be specified as a date with UTC time.

So:

  1. Can you please report this bug to Tine and, if possible, provide some reference/link here?
  2. The behavior shown by ical4j is quite strict, although relaxed parsing is possible. Maybe you could create an enhancement request for ical4j, so that this error can be ignored if relaxed parsing is enabled?

Temporal relations are not necessarily causal relations.

1

Reported to the Tine 2.0 tracker including backlink:
https://forge.tine20.org/view.php?id=13582

Log in to reply

Looks like your connection to Bitfire App Forums was lost, please wait while we try to reconnect.