From 3288e9dc0613f6ce61f7070f1bcd842eb94afa75 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Wed, 12 Feb 2014 08:14:00 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud) 59884: Merged V4.2-BUG-FIX (4.2.2) to HEAD-BUG-FIX (Cloud/4.3) 59611: Merged DEV to V4.2-BUG-FIX 58117: Added read transactions to Repository's get methods (MNT-9806) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@62201 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repo/model/Repository.java | 70 +++++++++++++------ 1 file changed, 47 insertions(+), 23 deletions(-) diff --git a/source/java/org/alfresco/repo/model/Repository.java b/source/java/org/alfresco/repo/model/Repository.java index aefce2ce89..56505bc670 100644 --- a/source/java/org/alfresco/repo/model/Repository.java +++ b/source/java/org/alfresco/repo/model/Repository.java @@ -245,16 +245,24 @@ public class Repository implements ApplicationContextAware */ public NodeRef getPerson() { - NodeRef person = null; - String currentUserName = AuthenticationUtil.getRunAsUser(); - if (currentUserName != null) + RetryingTransactionCallback callback = new RetryingTransactionCallback() { - if (personService.personExists(currentUserName)) + @Override + public NodeRef execute() throws Throwable { - person = personService.getPerson(currentUserName); + NodeRef person = null; + String currentUserName = AuthenticationUtil.getRunAsUser(); + if (currentUserName != null) + { + if (personService.personExists(currentUserName)) + { + person = personService.getPerson(currentUserName); + } + } + return person; } - } - return person; + }; + return retryingTransactionHelper.doInTransaction(callback, true); } /** @@ -264,16 +272,24 @@ public class Repository implements ApplicationContextAware */ public NodeRef getFullyAuthenticatedPerson() { - NodeRef person = null; - String currentUserName = AuthenticationUtil.getFullyAuthenticatedUser(); - if (currentUserName != null) + RetryingTransactionCallback callback = new RetryingTransactionCallback() { - if (personService.personExists(currentUserName)) + @Override + public NodeRef execute() throws Throwable { - person = personService.getPerson(currentUserName); + NodeRef person = null; + String currentUserName = AuthenticationUtil.getFullyAuthenticatedUser(); + if (currentUserName != null) + { + if (personService.personExists(currentUserName)) + { + person = personService.getPerson(currentUserName); + } + } + return person; } - } - return person; + }; + return retryingTransactionHelper.doInTransaction(callback, true); } /** @@ -282,17 +298,25 @@ public class Repository implements ApplicationContextAware * @param person person * @return user home of person */ - public NodeRef getUserHome(NodeRef person) + public NodeRef getUserHome(final NodeRef person) { - NodeRef homeFolderRef = (NodeRef)nodeService.getProperty(person, ContentModel.PROP_HOMEFOLDER); - if (homeFolderRef != null && nodeService.exists(homeFolderRef)) + RetryingTransactionCallback callback = new RetryingTransactionCallback() { - return homeFolderRef; - } - else - { - return null; - } + @Override + public NodeRef execute() throws Throwable + { + NodeRef homeFolderRef = (NodeRef)nodeService.getProperty(person, ContentModel.PROP_HOMEFOLDER); + if (homeFolderRef != null && nodeService.exists(homeFolderRef)) + { + return homeFolderRef; + } + else + { + return null; + } + } + }; + return retryingTransactionHelper.doInTransaction(callback, true); } /**