diff --git a/source/java/org/alfresco/repo/node/archive/NodeArchiveServiceImpl.java b/source/java/org/alfresco/repo/node/archive/NodeArchiveServiceImpl.java index 29f3cddd90..ecb8c5e497 100644 --- a/source/java/org/alfresco/repo/node/archive/NodeArchiveServiceImpl.java +++ b/source/java/org/alfresco/repo/node/archive/NodeArchiveServiceImpl.java @@ -489,19 +489,17 @@ public class NodeArchiveServiceImpl implements NodeArchiveService public void purgeArchivedNode(final NodeRef archivedNodeRef) { RetryingTransactionHelper txnHelper = transactionService.getRetryingTransactionHelper(); - RetryingTransactionCallback deleteCallback = new RetryingTransactionCallback() + RetryingTransactionCallback deleteCallback = new RetryingTransactionCallback() { - public Object execute() throws Exception + public Void execute() throws Exception { - try + if (!nodeService.exists(archivedNodeRef)) { - invokeBeforePurgeNode(archivedNodeRef); - nodeService.deleteNode(archivedNodeRef); - } - catch (InvalidNodeRefException e) - { - // ignore + // Node has disappeared + return null; } + invokeBeforePurgeNode(archivedNodeRef); + nodeService.deleteNode(archivedNodeRef); return null; } };