diff --git a/remote-api/src/main/java/org/alfresco/rest/framework/webscripts/AbstractResourceWebScript.java b/remote-api/src/main/java/org/alfresco/rest/framework/webscripts/AbstractResourceWebScript.java index 32c0180c9c..360ca7b9fa 100644 --- a/remote-api/src/main/java/org/alfresco/rest/framework/webscripts/AbstractResourceWebScript.java +++ b/remote-api/src/main/java/org/alfresco/rest/framework/webscripts/AbstractResourceWebScript.java @@ -110,22 +110,10 @@ public abstract class AbstractResourceWebScript extends ApiWebScript implements @Override public Object execute() throws Throwable { - try - { - final Params params = paramsExtractor.extractParams(resource.getMetaData(), req); - return AbstractResourceWebScript.this.execute(resource, params, res, isReadOnly); - } - catch (Exception e) - { - if (req instanceof BufferedRequest) - { - // Reset the request in case of a transaction retry - ((BufferedRequest) req).reset(); - } - - // re-throw original exception for retry - throw e; - } + // Reset the request so that it can be read again in case of retry + resetRequest(req); + final Params params = paramsExtractor.extractParams(resource.getMetaData(), req); + return AbstractResourceWebScript.this.execute(resource, params, res, isReadOnly); } }; @@ -238,6 +226,15 @@ public abstract class AbstractResourceWebScript extends ApiWebScript implements } } + protected void resetRequest(WebScriptRequest req) + { + if (req instanceof BufferedRequest) + { + BufferedRequest bufferedRequest = (BufferedRequest) req; + bufferedRequest.reset(); + } + } + protected RetryingTransactionHelper getTransactionHelper(String api) { RetryingTransactionHelper transHelper = transactionService.getRetryingTransactionHelper();