diff --git a/source/java/org/alfresco/repo/web/scripts/Repository.java b/source/java/org/alfresco/repo/web/scripts/Repository.java index dacc91f3b5..8ceb632531 100644 --- a/source/java/org/alfresco/repo/web/scripts/Repository.java +++ b/source/java/org/alfresco/repo/web/scripts/Repository.java @@ -24,6 +24,7 @@ */ package org.alfresco.repo.web.scripts; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -361,13 +362,39 @@ public class Repository implements ApplicationContextAware, ApplicationListener, { if (referenceType.equals("node")) { - NodeRef urlRef = new NodeRef(storeRef, reference[2]); - if (nodeService.exists(urlRef)) + // find the node the rest of the path is relative to + NodeRef relRef = new NodeRef(storeRef, reference[2]); + if (nodeService.exists(relRef)) { - nodeRef = urlRef; + // are there any relative path elements to process? + if (reference.length == 3 || reference.length == 4) + { + // just the NodeRef can be specified + nodeRef = relRef; + } + else + { + // process optional path elements + List paths = new ArrayList(reference.length - 3); + for (int i=3; i