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

101651: Merged 5.0.N (5.0.2) to HEAD-BUG-FIX (5.1/Cloud)
      101403: Merged V4.2-BUG-FIX (4.2.5) to 5.0.N (5.0.2)
         101245: Merged V4.1-BUG-FIX (4.1.11) to V4.2-BUG-FIX (4.2.5)
            101157: Merged V4.1.10 (4.1.10) to V4.1-BUG-FIX (4.1.11)
               101099: MNT-13607: Merged DEV to PATCHES/V4.1.10
                  101029: MNT-13607: Sending two emails to inbound server at the same time & same subject causes error
                     - Rethrow DuplicateChildNodeNameException which occurred during message processing as ConcurrencyFailureException to force retry. Add unit test for case.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@101698 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tatyana Valkevych
2015-04-10 21:05:36 +00:00
parent f18d18099f
commit 1ad8293a8c
2 changed files with 76 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
* Copyright (C) 2005-2015 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -39,6 +39,7 @@ import org.alfresco.service.cmr.email.EmailDelivery;
import org.alfresco.service.cmr.email.EmailMessage;
import org.alfresco.service.cmr.email.EmailMessageException;
import org.alfresco.service.cmr.email.EmailService;
import org.alfresco.service.cmr.repository.DuplicateChildNodeNameException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
@@ -52,6 +53,7 @@ import org.alfresco.service.namespace.QName;
import org.alfresco.util.PropertyCheck;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.ConcurrencyFailureException;
import org.springframework.extensions.surf.util.ParameterCheck;
/**
@@ -293,7 +295,14 @@ public class EmailServiceImpl implements EmailService
targetNodeRef = nodeRef;
}
EmailMessageHandler messageHandler = getMessageHandler(targetNodeRef);
messageHandler.processMessage(targetNodeRef, message);
try
{
messageHandler.processMessage(targetNodeRef, message);
}
catch (DuplicateChildNodeNameException e)
{
throw new ConcurrencyFailureException(e.getMessage());
}
return null;
}
};