From df8a53ce33177a49812842d70d25bd82d2154c24 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Tue, 9 Jan 2007 17:51:36 +0000 Subject: [PATCH] Fix for now-missing children of versioned parents git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4766 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/version/NodeServiceImpl.java | 56 ++++++++++--------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/source/java/org/alfresco/repo/version/NodeServiceImpl.java b/source/java/org/alfresco/repo/version/NodeServiceImpl.java index 30e3c95b0e..f5cc90db5b 100644 --- a/source/java/org/alfresco/repo/version/NodeServiceImpl.java +++ b/source/java/org/alfresco/repo/version/NodeServiceImpl.java @@ -422,25 +422,28 @@ public class NodeServiceImpl implements NodeService, VersionModel NodeRef childRef = childAssocRef.getChildRef(); NodeRef referencedNode = (NodeRef)this.dbNodeService.getProperty(childRef, ContentModel.PROP_REFERENCE); - // get the qualified name of the frozen child association and filter out unwanted names - QName qName = (QName)this.dbNodeService.getProperty(childRef, PROP_QNAME_ASSOC_QNAME); - - if (qnamePattern.isMatch(qName) == true) - { - // Retrieve the isPrimary and nthSibling values of the forzen child association - QName assocType = (QName)this.dbNodeService.getProperty(childRef, PROP_QNAME_ASSOC_TYPE_QNAME); - boolean isPrimary = ((Boolean)this.dbNodeService.getProperty(childRef, PROP_QNAME_IS_PRIMARY)).booleanValue(); - int nthSibling = ((Integer)this.dbNodeService.getProperty(childRef, PROP_QNAME_NTH_SIBLING)).intValue(); + if (this.dbNodeService.exists(referencedNode) == true) + { + // get the qualified name of the frozen child association and filter out unwanted names + QName qName = (QName)this.dbNodeService.getProperty(childRef, PROP_QNAME_ASSOC_QNAME); - // Build a child assoc ref to add to the returned list - ChildAssociationRef newChildAssocRef = new ChildAssociationRef( - assocType, - nodeRef, - qName, - referencedNode, - isPrimary, - nthSibling); - result.add(newChildAssocRef); + if (qnamePattern.isMatch(qName) == true) + { + // Retrieve the isPrimary and nthSibling values of the forzen child association + QName assocType = (QName)this.dbNodeService.getProperty(childRef, PROP_QNAME_ASSOC_TYPE_QNAME); + boolean isPrimary = ((Boolean)this.dbNodeService.getProperty(childRef, PROP_QNAME_IS_PRIMARY)).booleanValue(); + int nthSibling = ((Integer)this.dbNodeService.getProperty(childRef, PROP_QNAME_NTH_SIBLING)).intValue(); + + // Build a child assoc ref to add to the returned list + ChildAssociationRef newChildAssocRef = new ChildAssociationRef( + assocType, + nodeRef, + qName, + referencedNode, + isPrimary, + nthSibling); + result.add(newChildAssocRef); + } } } @@ -506,13 +509,16 @@ public class NodeServiceImpl implements NodeService, VersionModel NodeRef childRef = childAssocRef.getChildRef(); NodeRef referencedNode = (NodeRef)this.dbNodeService.getProperty(childRef, ContentModel.PROP_REFERENCE); - // get the qualified type name of the frozen child association and filter out unwanted names - QName qName = (QName)this.dbNodeService.getProperty(childRef, PROP_QNAME_ASSOC_TYPE_QNAME); - - if (qnamePattern.isMatch(qName) == true) - { - AssociationRef newAssocRef = new AssociationRef(sourceRef, qName, referencedNode); - result.add(newAssocRef); + if (this.dbNodeService.exists(referencedNode) == true) + { + // get the qualified type name of the frozen child association and filter out unwanted names + QName qName = (QName)this.dbNodeService.getProperty(childRef, PROP_QNAME_ASSOC_TYPE_QNAME); + + if (qnamePattern.isMatch(qName) == true) + { + AssociationRef newAssocRef = new AssociationRef(sourceRef, qName, referencedNode); + result.add(newAssocRef); + } } }