diff --git a/radicale/storage/multifilesystem.py b/radicale/storage/multifilesystem.py index d4243d9..16b6c63 100644 --- a/radicale/storage/multifilesystem.py +++ b/radicale/storage/multifilesystem.py @@ -72,6 +72,8 @@ class Collection(filesystem.Collection): "Can't tranlate name safely to filesystem, " "skipping component: %s", name) return + if name in self.items: + del self.items[name] filesystem_path = os.path.join(self._filesystem_path, name) if os.path.exists(filesystem_path): os.remove(filesystem_path) @@ -80,7 +82,7 @@ class Collection(filesystem.Collection): def text(self): components = ( ical.Timezone, ical.Event, ical.Todo, ical.Journal, ical.Card) - items = set() + items = {} try: filenames = os.listdir(self._filesystem_path) except (OSError, IOError) as e: @@ -99,7 +101,7 @@ class Collection(filesystem.Collection): 'Error while reading item %r: %r' % (path, e)) return ical.serialize( - self.tag, self.headers, sorted(items, key=lambda x: x.name)) + self.tag, self.headers, sorted(items.values(), key=lambda x: x.name)) @classmethod def is_node(cls, path):