From fed100a646986bfcaf6b55ab5f89734cf2f97d73 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Mon, 20 Jul 2009 10:12:06 +0000 Subject: [PATCH] Merged V3.2 to HEAD 15268: Fix to ScriptNode to return null in call to childByNamePath() when no permissions on requested child node. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15269 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- source/java/org/alfresco/repo/jscript/ScriptNode.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/java/org/alfresco/repo/jscript/ScriptNode.java b/source/java/org/alfresco/repo/jscript/ScriptNode.java index 93acd24959..af35abaed6 100644 --- a/source/java/org/alfresco/repo/jscript/ScriptNode.java +++ b/source/java/org/alfresco/repo/jscript/ScriptNode.java @@ -47,7 +47,6 @@ import org.alfresco.model.ApplicationModel; import org.alfresco.model.ContentModel; import org.alfresco.repo.action.executer.TransformActionExecuter; import org.alfresco.repo.content.transform.magick.ImageTransformationOptions; -import org.alfresco.repo.search.QueryParameterDefImpl; import org.alfresco.repo.tagging.script.TagScope; import org.alfresco.repo.thumbnail.CreateThumbnailActionExecuter; import org.alfresco.repo.thumbnail.ThumbnailDefinition; @@ -58,7 +57,6 @@ import org.alfresco.repo.workflow.jscript.JscriptWorkflowInstance; import org.alfresco.scripts.ScriptException; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.action.Action; -import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.lock.LockStatus; import org.alfresco.service.cmr.model.FileInfo; @@ -406,10 +404,15 @@ public class ScriptNode implements Serializable, Scopeable, NamespacePrefixResol StringTokenizer t = new StringTokenizer(path, "/"); if (t.hasMoreTokens()) { + List names = new ArrayList(1); + names.add(null); // ensure first element is set result = this.nodeRef; while (t.hasMoreTokens() && result != null) { - result = this.nodeService.getChildByName(result, ContentModel.ASSOC_CONTAINS, t.nextToken()); + names.set(0, t.nextToken()); + List children = this.nodeService.getChildrenByName( + result, ContentModel.ASSOC_CONTAINS, names); + result = (children.size() == 1 ? children.get(0).getChildRef() : null); } }