mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Fixed ALF-10964: Add back cache for getChildByName
- Originally removed as part of the 'reverse lookup' of parentAssocsCache - This cache is NOT clustered; the child target version is checked; requery if necessary - NB: Cache misses are NOT cached. Do do so would mean making the cache clustered. It is better to avoid querying for random files that don't exist over and over. Add a higher level cache (as is done in CIFS) for that case. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31417 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -500,4 +500,39 @@ public class NodeServiceTest extends TestCase
|
||||
List<ChildAssociationRef> parentAssocsPost = nodeService.getParentAssocs(secondaryNodeRef);
|
||||
assertEquals("Incorrect number of parent assocs", 1, parentAssocsPost.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that file renames are handled when getting children
|
||||
*/
|
||||
public void testCaches_RenameNode()
|
||||
{
|
||||
final NodeRef[] nodeRefs = new NodeRef[2];
|
||||
final NodeRef workspaceRootNodeRef = nodeService.getRootNode(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE);
|
||||
buildNodeHierarchy(workspaceRootNodeRef, nodeRefs);
|
||||
|
||||
// What is the name of the first child?
|
||||
String name = (String) nodeService.getProperty(nodeRefs[1], ContentModel.PROP_NAME);
|
||||
// Now query for it
|
||||
NodeRef nodeRefCheck = nodeService.getChildByName(nodeRefs[0], ContentModel.ASSOC_CONTAINS, name);
|
||||
assertNotNull("Did not find node by name", nodeRefCheck);
|
||||
assertEquals("Node found was not correct", nodeRefs[1], nodeRefCheck);
|
||||
|
||||
// Rename the node
|
||||
nodeService.setProperty(nodeRefs[1], ContentModel.PROP_NAME, "New Name");
|
||||
// Should find nothing
|
||||
nodeRefCheck = nodeService.getChildByName(nodeRefs[0], ContentModel.ASSOC_CONTAINS, name);
|
||||
assertNull("Should not have found anything", nodeRefCheck);
|
||||
|
||||
// Add another child with the same original name
|
||||
NodeRef newChildNodeRef = nodeService.createNode(
|
||||
nodeRefs[0],
|
||||
ContentModel.ASSOC_CONTAINS,
|
||||
QName.createQName(NAMESPACE, name),
|
||||
ContentModel.TYPE_FOLDER,
|
||||
Collections.singletonMap(ContentModel.PROP_NAME, (Serializable)name)).getChildRef();
|
||||
// We should find this new node when looking for the name
|
||||
nodeRefCheck = nodeService.getChildByName(nodeRefs[0], ContentModel.ASSOC_CONTAINS, name);
|
||||
assertNotNull("Did not find node by name", nodeRefCheck);
|
||||
assertEquals("Node found was not correct", newChildNodeRef, nodeRefCheck);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user