From dedef025d6fd65c47e62817d6ec0f640f1262de7 Mon Sep 17 00:00:00 2001 From: Dave Ward Date: Fri, 16 Jan 2009 17:55:54 +0000 Subject: [PATCH] ALFCOM-2422: Lazily retrieve the status template after a web script exception, outside the transaction retrying loop, thus avoiding nested transactions, potential deadlocks, and hanging problems on Derby git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12836 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- source/java/org/alfresco/repo/web/scripts/RepoStore.java | 4 +--- .../org/alfresco/repo/web/scripts/RepositoryContainer.java | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/source/java/org/alfresco/repo/web/scripts/RepoStore.java b/source/java/org/alfresco/repo/web/scripts/RepoStore.java index 9b04d0d2a8..cd487ba2e6 100644 --- a/source/java/org/alfresco/repo/web/scripts/RepoStore.java +++ b/source/java/org/alfresco/repo/web/scripts/RepoStore.java @@ -700,8 +700,6 @@ public class RepoStore implements Store, TenantDeployer { public Object doWork() throws Exception { - // Run this in an isolated transaction to avoid flushing an uncommitted webscript transaction and - // causing deadlocks or trying to flush a 'dead' failed transaction return retryingTransactionHelper.doInTransaction(new RetryingTransactionCallback() { public Object execute() throws Exception @@ -714,7 +712,7 @@ public class RepoStore implements Store, TenantDeployer } return source; } - }, true, true); + }, true); } }, AuthenticationUtil.getSystemUserName()); } diff --git a/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java b/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java index 625bb15f04..3ff95da1e6 100644 --- a/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java +++ b/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java @@ -169,7 +169,7 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten */ public Map getTemplateParameters() { - // This must be in an isolated read-only transaction, in case we are handling failure of another transaction + // Ensure we have a transaction - we might be generating the status template after the main transaction failed return retryingTransactionHelper.doInTransaction(new RetryingTransactionCallback>() { public Map execute() throws Throwable @@ -180,7 +180,7 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten addRepoParameters(params); return params; } - }, true, true); + }, true); } /**