diff --git a/source/java/org/alfresco/repo/jscript/RhinoScriptProcessor.java b/source/java/org/alfresco/repo/jscript/RhinoScriptProcessor.java index cf51a4aca0..847c6aa62c 100644 --- a/source/java/org/alfresco/repo/jscript/RhinoScriptProcessor.java +++ b/source/java/org/alfresco/repo/jscript/RhinoScriptProcessor.java @@ -441,7 +441,7 @@ public class RhinoScriptProcessor extends BaseProcessor implements ScriptProcess } else { - newModel = new HashMap(0); + newModel = new HashMap(1, 1.0f); } return newModel; } @@ -464,5 +464,4 @@ public class RhinoScriptProcessor extends BaseProcessor implements ScriptProcess return super.wrapAsJavaObject(cx, scope, javaObject, staticType); } } - } diff --git a/source/java/org/alfresco/repo/model/Repository.java b/source/java/org/alfresco/repo/model/Repository.java index 4297539a3c..633c50edff 100644 --- a/source/java/org/alfresco/repo/model/Repository.java +++ b/source/java/org/alfresco/repo/model/Repository.java @@ -29,6 +29,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.model.ContentModel; @@ -83,6 +84,7 @@ public class Repository implements ApplicationContextAware, ApplicationListener, private StoreRef companyHomeStore; private String companyHomePath; private Map companyHomeRefs; + private NodeRef rootRef; /** @@ -205,7 +207,7 @@ public class Repository implements ApplicationContextAware, ApplicationListener, if (companyHomeRefs == null) { - companyHomeRefs = new HashMap(1); + companyHomeRefs = new ConcurrentHashMap(4); } getCompanyHome(); @@ -219,7 +221,11 @@ public class Repository implements ApplicationContextAware, ApplicationListener, */ public NodeRef getRootHome() { - return nodeService.getRootNode(companyHomeStore); + if (rootRef == null) + { + rootRef = nodeService.getRootNode(companyHomeStore); + } + return rootRef; } /** @@ -281,9 +287,10 @@ public class Repository implements ApplicationContextAware, ApplicationListener, */ public NodeRef getUserHome(NodeRef person) { - return (NodeRef)nodeService.getProperty(person, ContentModel.PROP_HOMEFOLDER); + NodeRef homeFolderRef = (NodeRef)nodeService.getProperty(person, ContentModel.PROP_HOMEFOLDER); + return nodeService.exists(homeFolderRef) ? homeFolderRef : null; } - + /** * Helper to convert a Web Script Request URL to a Node Ref *