diff --git a/source/java/org/alfresco/repo/site/SiteServiceImpl.java b/source/java/org/alfresco/repo/site/SiteServiceImpl.java
index 990b00cef0..a777ccc4cd 100644
--- a/source/java/org/alfresco/repo/site/SiteServiceImpl.java
+++ b/source/java/org/alfresco/repo/site/SiteServiceImpl.java
@@ -932,16 +932,17 @@ public class SiteServiceImpl implements SiteService, SiteModel
}
/**
- * Gets the site node reference for a particular node reference
+ * This method gets the st:site
NodeRef for the Share Site which contains the given NodeRef.
+ * If the given NodeRef is not contained within a Share Site, then null
is returned.
*
- * @param nodeRef node reference
+ * @param nodeRef the node whose containing site is to be found.
* @return NodeRef site node reference or null if node is not in a site
*/
private NodeRef getSiteNodeRef(NodeRef nodeRef)
{
NodeRef siteNodeRef = null;
QName nodeRefType = nodeService.getType(nodeRef);
- if (dictionaryService.isSubClass(TYPE_SITE, nodeRefType) == true)
+ if (dictionaryService.isSubClass(nodeRefType, TYPE_SITE) == true)
{
siteNodeRef = nodeRef;
}
diff --git a/source/java/org/alfresco/repo/site/SiteServiceImplTest.java b/source/java/org/alfresco/repo/site/SiteServiceImplTest.java
index 1e6fee6d06..ee1fee64f9 100644
--- a/source/java/org/alfresco/repo/site/SiteServiceImplTest.java
+++ b/source/java/org/alfresco/repo/site/SiteServiceImplTest.java
@@ -564,6 +564,14 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
siteInfo = this.siteService.getSite("testGetSite");
assertNotNull(siteInfo);
checkSiteInfo(siteInfo, TEST_SITE_PRESET, "testGetSite", TEST_TITLE, TEST_DESCRIPTION, SiteVisibility.PUBLIC);
+
+ // Create a path to content within the site
+ NodeRef container = siteService.createContainer(siteInfo.getShortName(), "folder.component", ContentModel.TYPE_FOLDER, null);
+ NodeRef content = nodeService.createNode(container, ContentModel.ASSOC_CONTAINS, ContentModel.ASSOC_CONTAINS, ContentModel.TYPE_CONTENT).getChildRef();
+
+ // Get the site from the lower-level child node.
+ siteInfo = siteService.getSite(content);
+ checkSiteInfo(siteInfo, TEST_SITE_PRESET, "testGetSite", TEST_TITLE, TEST_DESCRIPTION, SiteVisibility.PUBLIC);
}
public void testUpdateSite()
diff --git a/source/java/org/alfresco/service/cmr/site/SiteService.java b/source/java/org/alfresco/service/cmr/site/SiteService.java
index 40dd0b86cd..45644ec068 100644
--- a/source/java/org/alfresco/service/cmr/site/SiteService.java
+++ b/source/java/org/alfresco/service/cmr/site/SiteService.java
@@ -116,9 +116,11 @@ public interface SiteService
SiteInfo getSite(String shortName);
/**
+ * This method gets the {@link SiteInfo} for the Share Site which contains the given NodeRef.
+ * If the given NodeRef is not contained within a Share Site, then null
is returned.
*
- * @param nodeRef
- * @return
+ * @param nodeRef the node whose containing site's info is to be found.
+ * @return SiteInfo site information for the containing site or null
if node is not in a site.
*/
@NotAuditable
SiteInfo getSite(NodeRef nodeRef);