mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Merged V2.0 to HEAD
5457: Merge error on copy web project action 5459: AR-1278 5461: 5462: A few deployment fixes 5469: Dictionary messages 5470: L2 cache checks 5478: WCM-374 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5485 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -900,6 +900,49 @@ public class HibernateNodeDaoServiceImpl extends HibernateDaoSupport implements
|
||||
getSession().flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*
|
||||
* This method includes a check to ensure that the <b>parentAssocs</b> cache
|
||||
* isn't incorrectly empty.
|
||||
*/
|
||||
public Collection<ChildAssoc> getParentAssocs(Node node)
|
||||
{
|
||||
Collection<ChildAssoc> parentAssocs = node.getParentAssocs();
|
||||
if (parentAssocs.size() == 0)
|
||||
{
|
||||
// the only condition where this is allowed is if the given node is a root node
|
||||
Store store = node.getStore();
|
||||
Node rootNode = store.getRootNode();
|
||||
if (rootNode == null)
|
||||
{
|
||||
// a store without a root node - the entire store is hosed
|
||||
throw new DataIntegrityViolationException("Store has no root node: \n" +
|
||||
" store: " + store);
|
||||
}
|
||||
if (!rootNode.equals(node))
|
||||
{
|
||||
// Reload the node to ensure that it is properly initialized
|
||||
getSession().refresh(node);
|
||||
// Check if it has any parents yet.
|
||||
if (node.getParentAssocs().size() == 0)
|
||||
{
|
||||
// It wasn't the root node and definitely has no parent
|
||||
throw new DataIntegrityViolationException(
|
||||
"Non-root node has no primary parent: \n" +
|
||||
" child: " + node);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Repeat this method with confidence
|
||||
return getParentAssocs(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Done
|
||||
return parentAssocs;
|
||||
}
|
||||
|
||||
private Set<NodeRef> warnedDuplicateParents = new HashSet<NodeRef>(3);
|
||||
/**
|
||||
* @inheritDoc
|
||||
|
Reference in New Issue
Block a user