From 0902840a2bc362ee90a29b022f909d666673ea66 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Mon, 12 Sep 2011 14:04:01 +0000 Subject: [PATCH] Proper retrying during ReplicationServiceIntegrationTest teardown git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30430 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../ReplicationServiceIntegrationTest.java | 74 +++++++++++-------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/source/java/org/alfresco/repo/replication/ReplicationServiceIntegrationTest.java b/source/java/org/alfresco/repo/replication/ReplicationServiceIntegrationTest.java index ec682a0d26..7dd7cb7716 100644 --- a/source/java/org/alfresco/repo/replication/ReplicationServiceIntegrationTest.java +++ b/source/java/org/alfresco/repo/replication/ReplicationServiceIntegrationTest.java @@ -194,35 +194,51 @@ public class ReplicationServiceIntegrationTest extends TestCase } @Override - protected void tearDown() throws Exception { - UserTransaction txn = transactionService.getUserTransaction(); - txn.begin(); - - // Zap our test folders - if(folder1 != null) { - nodeService.deleteNode(folder1); - } - if(folder2 != null) { - nodeService.deleteNode(folder2); - } - - // Zap the destination folder, which may well contain - // entries transfered over which are locked - if(destinationFolder != null) { - lockService.unlock(destinationFolder, true); - nodeService.deleteNode(destinationFolder); - } - - txn.commit(); - txn = transactionService.getUserTransaction(); - txn.begin(); - - // Zap our test transfer target - try { - transferService.deleteTransferTarget(TRANSFER_TARGET); - } catch(TransferException e) {} - - txn.commit(); + protected void tearDown() throws Exception + { + RetryingTransactionCallback cleanupCallback = new RetryingTransactionCallback() + { + @Override + public Void execute() throws Throwable + { + // Zap our test folders + if( folder1 != null) + { + nodeService.deleteNode(folder1); + } + if (folder2 != null) + { + nodeService.deleteNode(folder2); + } + // Zap the destination folder, which may well contain entries transfered over which are locked + if (destinationFolder != null) + { + lockService.unlock(destinationFolder, true); + nodeService.deleteNode(destinationFolder); + } + return null; + } + }; + transactionService.getRetryingTransactionHelper().doInTransaction(cleanupCallback); + + RetryingTransactionCallback cleanupTargetCallback = new RetryingTransactionCallback() + { + @Override + public Void execute() throws Throwable + { + // Zap our test transfer target + transferService.deleteTransferTarget(TRANSFER_TARGET); + return null; + } + }; + try + { + transactionService.getRetryingTransactionHelper().doInTransaction(cleanupTargetCallback); + } + catch (TransferException e) + { + // Ignore + } }