From 8c03db8847c79e4b5f9e98048ef6f3371cae8c71 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Wed, 29 Jul 2015 16:39:30 -0300 Subject: mailbox collision shouldnt cancel operation --- service/pixelated/adapter/services/mailboxes.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'service') diff --git a/service/pixelated/adapter/services/mailboxes.py b/service/pixelated/adapter/services/mailboxes.py index 3662bbe9..80cc74fe 100644 --- a/service/pixelated/adapter/services/mailboxes.py +++ b/service/pixelated/adapter/services/mailboxes.py @@ -17,6 +17,7 @@ from twisted.internet import defer from pixelated.adapter.services.mailbox import Mailbox from pixelated.adapter.listeners.mailbox_indexer_listener import MailboxIndexerListener from pixelated.adapter.model.mail import welcome_mail +from twisted.mail.imap4 import MailboxCollision class Mailboxes(object): @@ -43,7 +44,11 @@ class Mailboxes(object): mailbox_name = mailbox_name.upper() # if mailbox_name not in self.account.mailboxes: if mailbox_name not in (yield self.account.account.list_all_mailbox_names()): - yield self.account.addMailbox(mailbox_name) + try: + yield self.account.addMailbox(mailbox_name) + except MailboxCollision: + pass + # It means that it is already created. FIXME Why list_all fails to tell? yield MailboxIndexerListener.listen(self.account, mailbox_name, self.querier) defer.returnValue(Mailbox.create(mailbox_name, self.querier, self.search_engine)) -- cgit v1.2.3