{"shas":[["22e8c2f2521c9b260cbd0722c4453bef2dcd61f4","98dcb2717ddae152d5b359c6ea97e4fe34a29d4c@SSpaeth.de","Implement ui.error() and output them at end of offlinimap sync\n\nOutput all raised Exceptions error strings to the error log. If we are\nin debug mode, we also output the traceback of the exception.\n\nSave all exceptions that occur during the run time to a Queue and output\nthem all again when the offlineimap sync is finished.\n\nSigned-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>","Sebastian Spaeth"],["c3a3dc3552fb9d339e30e43ab0215be9037a4f29","98dcb2717ddae152d5b359c6ea97e4fe34a29d4c@SSpaeth.de","accounts.py: Use ui.error when raising exceptions\n\nRather than using ui.warn, use ui.error() which outputs Exceptions to\nthe error log, saving them to a stack, so we get notified again at the\nend of the sync run.\n\nSigned-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>","Sebastian Spaeth"],["23588e09640ec4c81ad86cf016a9297877cbf3f7","98dcb2717ddae152d5b359c6ea97e4fe34a29d4c@SSpaeth.de","folder/Base: Convert exceptions to self.ui.error()\n\nUse ui.error() to output error to log and queue them until the sync\nfinishes. Check in more places for OfflineImapErrors, bubble them up if\nthey are severe, and output them otherwise.\n\nIf a message fails to upload/download we will now not abort the whole\nfolder sync, but simply skip the message and continue with the\nrest, logging the failure.\n\nSigned-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>","Sebastian Spaeth"],["5830ba37157b181c437a9c7f4bdf55914c6a508c","98dcb2717ddae152d5b359c6ea97e4fe34a29d4c@SSpaeth.de","IMAP: Don't use assert() in folder.savemessage()\n\nWe simply assert()ed that APPENDing a message returned OK, but in some\ncases (e.g. Google chat messages) APPEND might return BAD or NO too. We\nshould be throwing an OfflineImapError here at MESSAGE level, so that we\ncan continue to sync all other messages, and still give the user some\ndetails on what went wrong at the end of the sync run.\n\nSigned-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>","Sebastian Spaeth"]],"ref":"refs/heads/pending/self_ui_error-v2","size":4,"head":"5830ba37157b181c437a9c7f4bdf55914c6a508c","push_id":35933795}