diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml index d20fd18fc3..006e90829c 100644 --- a/config/alfresco/web-scripts-application-context.xml +++ b/config/alfresco/web-scripts-application-context.xml @@ -195,6 +195,8 @@ + + diff --git a/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java b/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java index 2dce98f931..a0bc951686 100644 --- a/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java +++ b/source/java/org/alfresco/repo/web/scripts/RepositoryContainer.java @@ -83,6 +83,7 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten private Repository repository; private RepositoryImageResolver imageResolver; private RetryingTransactionHelper retryingTransactionHelper; + private RetryingTransactionHelper fallbackTransactionHelper; private AuthorityService authorityService; private DescriptorService descriptorService; private TenantAdminService tenantAdminService; @@ -129,6 +130,14 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten { this.retryingTransactionHelper = retryingTransactionHelper; } + + /** + * @param fallbackTransactionHelper an unlimited transaction helper used to generate error responses + */ + public void setFallbackTransactionHelper(RetryingTransactionHelper fallbackTransactionHelper) + { + this.fallbackTransactionHelper = fallbackTransactionHelper; + } /** * @param descriptorService @@ -180,7 +189,7 @@ public class RepositoryContainer extends AbstractRuntimeContainer implements Ten public Map getTemplateParameters() { // Ensure we have a transaction - we might be generating the status template after the main transaction failed - return retryingTransactionHelper.doInTransaction(new RetryingTransactionCallback>() + return fallbackTransactionHelper.doInTransaction(new RetryingTransactionCallback>() { public Map execute() throws Throwable {