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
This commit is contained in:
Derek Hulley
2007-01-09 17:51:36 +00:00
parent 77a6217b8d
commit df8a53ce33

View File

@@ -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)
if (this.dbNodeService.exists(referencedNode) == 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();
// 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)
if (this.dbNodeService.exists(referencedNode) == true)
{
AssociationRef newAssocRef = new AssociationRef(sourceRef, qName, referencedNode);
result.add(newAssocRef);
// 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);
}
}
}