Class CaldavCalendarSyncEntity
Deliberately in the CalDAV add-on's own schema rather than as columns on agenda's tables. Agenda owns calendars and events; how one of them happens to be mirrored on a DAV server is this add-on's concern, and an add-on that can be uninstalled must not have left columns behind in another domain's tables.
@DynamicUpdate, and it is not decoration. This row carries no
version column and has several writers doing read-modify-save over the whole
of it: the sync pass writes the token, the ctag and the two timestamps, the
failure counter is written on its own, and since EXO-89759 the mirror
verification stamps copySettingsApplied at the end of a round that
can take minutes. Without this annotation every one of those writes flushes an
UPDATE over every column, from the snapshot the writer read when it started —
so a stamp written by a long round would silently erase whatever a sync that
finished in the meantime had committed, and the other way round. With it, only
the columns that actually changed are in the statement, and the two writers
stop overwriting each other's work.
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
CaldavCalendarSyncEntity
public CaldavCalendarSyncEntity()
-