diff --git a/plugins/libkolab/lib/kolab_format.php b/plugins/libkolab/lib/kolab_format.php index d00d5ee4..814800d2 100644 --- a/plugins/libkolab/lib/kolab_format.php +++ b/plugins/libkolab/lib/kolab_format.php @@ -528,6 +528,7 @@ abstract class kolab_format $created = $object['created'] ?: new DateTime('now'); $created->setTimezone(new DateTimeZone('UTC')); // must be UTC $this->obj->setCreated(self::get_datetime($created)); + $object['created'] = $created; } $object['changed'] = new DateTime('now', new DateTimeZone('UTC')); diff --git a/plugins/libkolab/lib/kolab_storage_cache.php b/plugins/libkolab/lib/kolab_storage_cache.php index 3a73d982..87c0649b 100644 --- a/plugins/libkolab/lib/kolab_storage_cache.php +++ b/plugins/libkolab/lib/kolab_storage_cache.php @@ -893,6 +893,12 @@ class kolab_storage_cache $object['_size'] = strlen($sql_arr['xml']); $object['_formatobj'] = kolab_format::factory($format_type, 3.0, $sql_arr['xml']); + // Fix old broken objects with missing creation date + if (empty($object['created']) && method_exists($object['_formatobj'], 'to_array')) { + $new_object = $object['_formatobj']->to_array(); + $object['created'] = $new_object['created']; + } + return $object; }