From 1dcd0cd00224f90231c3e288b657b5d47f8ca4f3 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Tue, 11 Feb 2014 18:39:00 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud) 57024: Merged V4.2-BUG-FIX (4.2.1) to HEAD-BUG-FIX (Cloud/4.3) 56491: Merged HEAD-BUG-FIX to V4.2-BUG-FIX (4.2.1) 55495: <> Merged V4.1-BUG-FIX (4.1.7) to HEAD-BUG-FIX (4.2) 55338: Merged DEV to V4.1-BUG-FIX 50363: MNT-644: imap subsystem lists all directories if an email is moved to Alfresco and decreases the performance of Email client Preventing caching on each AlfrescoImapHostManager.getFolder() method call git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@61657 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/imap/AlfrescoImapHostManager.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/source/java/org/alfresco/repo/imap/AlfrescoImapHostManager.java b/source/java/org/alfresco/repo/imap/AlfrescoImapHostManager.java index 859ad7b4f4..785b5ab08f 100644 --- a/source/java/org/alfresco/repo/imap/AlfrescoImapHostManager.java +++ b/source/java/org/alfresco/repo/imap/AlfrescoImapHostManager.java @@ -228,20 +228,15 @@ public class AlfrescoImapHostManager implements ImapHostManager AlfrescoImapUser alfrescoUser = new AlfrescoImapUser(user.getEmail(), user.getLogin(), user.getPassword()); String folderPath = getUnqualifiedMailboxPattern( alfrescoUser, mailboxName); - // Warm up the cache if necessary + if (folderCache == null) { - registerMailboxes(imapService.listMailboxes(alfrescoUser, "*", true)); + registerMailBox(imapService.getOrCreateMailbox(alfrescoUser, mailboxName, true, false)); } - // Try to retrieve from the cache + AlfrescoImapFolder result = folderCache.get(folderPath); - if (result != null && result.reset()) - { - return result; - } - - // Look up and cache as a last resort - return registerMailBox(imapService.getOrCreateMailbox(alfrescoUser, folderPath, true, false)); + + return result; } /** @@ -370,7 +365,12 @@ public class AlfrescoImapHostManager implements ImapHostManager private MailFolder registerMailBox(AlfrescoImapFolder mailbox) { String folderPath = mailbox.getFolderPath(); - if ((mailbox.isSelectable() || folderPath.isEmpty()) && folderCache != null) + if (folderCache == null) + { + folderCache = new HashMap(2); + } + + if ((mailbox.isSelectable() || folderPath.isEmpty())) { AlfrescoImapFolder oldFolder = folderCache.get(folderPath); if (oldFolder != null