From ddd67ecc07c10f0b48e9f14839c1a8a172d87f1c Mon Sep 17 00:00:00 2001
From: Kali Kaneko <kali@leap.se>
Date: Thu, 4 Jun 2015 10:22:34 -0400
Subject: [bug] prevent missing uid table exception

---
 mail/src/leap/mail/mail.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

(limited to 'mail/src/leap')

diff --git a/mail/src/leap/mail/mail.py b/mail/src/leap/mail/mail.py
index fe8226e2..8cb0b4ab 100644
--- a/mail/src/leap/mail/mail.py
+++ b/mail/src/leap/mail/mail.py
@@ -615,8 +615,13 @@ class MessageCollection(object):
                 return defer.succeed("mdoc_id not inserted")
                 # XXX BUG -----------------------------------------
 
-            return self.mbox_indexer.insert_doc(
-                self.mbox_uuid, doc_id)
+            # XXX BUG sometimes the table is not yet created,
+            # so workaround is to make sure we always check for it before
+            # inserting the doc. I should debug into the real cause.
+            d = self.mbox_indexer.create_table(self.mbox_uuid)
+            d.addCallback(lambda _: self.mbox_indexer.insert_doc(
+                self.mbox_uuid, doc_id))
+            return d
 
         d = wrapper.create(
             self.store,
-- 
cgit v1.2.3