From a280a905ca115306344572dae56eb8509d5ba34f Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Thu, 5 Jan 2012 14:18:29 +0100 Subject: [PATCH] Fix "getfolders() asked to get nonexisting folder" bug When a new remote folder was detected, we tried to create the folder locally on the Maildir and called repository.forgetfolders() to force a new scanning of the Maildir. However, that implementation used the inherited base function that did nothing. We simply needed to implement forgetfolders() to set self.folder=None, so we would force a new read in of the updated local folder structure. Signed-off-by: Sebastian Spaeth --- Changelog.draft.rst | 4 ++++ offlineimap/repository/Maildir.py | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Changelog.draft.rst b/Changelog.draft.rst index 76a0ea3..7842f51 100644 --- a/Changelog.draft.rst +++ b/Changelog.draft.rst @@ -18,3 +18,7 @@ Changes Bug Fixes --------- + +* Fix the missing folder error that occured when a new remote folder was + detected (IMAP<->Maildir) + diff --git a/offlineimap/repository/Maildir.py b/offlineimap/repository/Maildir.py index 70a5ca3..cdf054d 100644 --- a/offlineimap/repository/Maildir.py +++ b/offlineimap/repository/Maildir.py @@ -190,4 +190,8 @@ class MaildirRepository(BaseRepository): if self.folders == None: self.folders = self._getfolders_scandir(self.root) return self.folders - + + def forgetfolders(self): + """Forgets the cached list of folders, if any. Useful to run + after a sync run.""" + self.folders = None