Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.0/Cloud)

85821: Merged V4.2-BUG-FIX (4.2.4) to HEAD-BUG-FIX (5.0/Cloud)
      85774: Merged DEV to V4.2-BUG-FIX (4.2.4)
         85761: MNT-12381 IMAP server does not respect RFC for failed SELECT
            - The new AlfrescoImapRuntimeException was added. Greenmail FolderException exceptions will be thrown instead of AlfrescoRuntimeException in AlfrescoImapHostManager.getFolder() method with throws declaration.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94518 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2015-01-31 09:34:19 +00:00
parent 16b6069313
commit bb740fb0a6
3 changed files with 68 additions and 4 deletions

View File

@@ -53,6 +53,7 @@ import org.alfresco.repo.admin.SysAdminParams;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.imap.AlfrescoImapConst.ImapViewMode;
import org.alfresco.repo.imap.config.ImapConfigMountPointsBean;
import org.alfresco.repo.imap.exception.AlfrescoImapRuntimeException;
import org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy;
import org.alfresco.repo.node.NodeServicePolicies.OnCreateChildAssociationPolicy;
import org.alfresco.repo.node.NodeServicePolicies.OnDeleteChildAssociationPolicy;
@@ -105,6 +106,7 @@ import org.springframework.context.ApplicationEvent;
import org.springframework.extensions.surf.util.AbstractLifecycleBean;
import org.springframework.extensions.surf.util.I18NUtil;
import com.icegreen.greenmail.store.FolderException;
import com.icegreen.greenmail.store.SimpleStoredMessage;
/**
@@ -607,6 +609,9 @@ public class ImapServiceImpl implements ImapService, OnRestoreNodePolicy, OnCrea
}
}
/**
* @throws AlfrescoImapRuntimeException
*/
public AlfrescoImapFolder getOrCreateMailbox(AlfrescoImapUser user, String mailboxName, boolean mayExist, boolean mayCreate)
{
if (mailboxName == null)
@@ -659,13 +664,13 @@ public class ImapServiceImpl implements ImapService, OnRestoreNodePolicy, OnCrea
}
catch (FileNotFoundException e)
{
throw new AlfrescoRuntimeException(ERROR_CANNOT_GET_A_FOLDER, new String[] { mailboxName });
throw new AlfrescoImapRuntimeException(ERROR_CANNOT_GET_A_FOLDER, new String[] { mailboxName }, new FolderException(FolderException.NOT_LOCAL));
}
if (mailFolder == null)
{
if (!mayCreate)
{
throw new AlfrescoRuntimeException(ERROR_CANNOT_GET_A_FOLDER, new String[] { mailboxName });
throw new AlfrescoImapRuntimeException(ERROR_CANNOT_GET_A_FOLDER, new String[] { mailboxName }, new FolderException(FolderException.NOT_LOCAL));
}
if (logger.isDebugEnabled())
{
@@ -677,7 +682,7 @@ public class ImapServiceImpl implements ImapService, OnRestoreNodePolicy, OnCrea
{
if (!mayExist)
{
throw new AlfrescoRuntimeException(ERROR_FOLDER_ALREADY_EXISTS);
throw new AlfrescoImapRuntimeException(ERROR_FOLDER_ALREADY_EXISTS, new FolderException(FolderException.ALREADY_EXISTS_LOCALLY));
}
}
String path = (null != pathElements) ? (pathElements.get(pathElements.size() - 1)) : (rootPath);