mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.2 to HEAD
17363: Fix to DbNodeServiceImple to allow restored nodes. 17384: Minor comments 17451: Fix ETHREEOH-2751 / ETWOONE-340 - specialising a node through an action doesn't set default values from model 17459: ETHREEOH-2391 - Invite pending task now has lots of properties 17465: Repo side fix for ETHREEOH-3010: Inbound and outbound Mltext multiple property are not converted correctly 17478: Fix ETHREEOH-3340 - WCM - Revert to snapshot failure (fix AVM getListing -> AVNSync compare -> WCM revertSnapshot) 17483: (record only) Merged V3.1 to V3.2 (record-only) 17482: (record-only) due to earlier back-merge 17493: Fix for ETHREEOH-3342: index.recovery.mode example is incorrect 17494: Fix for ETHREEOH-3027: missingFullTextReindexTrigger (from index-recovery-context.xml) job does not work. 17510: Fix for ETHREEOH-1147: Indexing large indices can lead to Java Heap space. 17511: Fix for ETHREEOH-1271: It is possible to add one category more than one time to the same content or space 17513: ETHREEOH_3366: Altered DictionaryDAOImpl so that passing a null QName into getType and getAspect does not result in an NPE 17531: ETHREEOH-1186: Corrected rssfeed.get.js so a user can configure a RSS Feed dashlet that has been placed on their own dashboard 17550: ETHREEOH-2317: Rule not fired when document has no content 17556: Fixed ETHREEOH-1229: Can't delete space that contains "translation without content" 17558: Fix for ETHREEOH-3356: Forms fail to persist if property or association name has an _ (underscore) in it 17572: Changed caching of person NodeRefs so that duplicates are detected better 17573: Fixed UTF-8 for file with encoded chars 17576: LockAcquisitionException message specific to failed release of taken-over lock ___________________________________________________________________ Modified: svn:mergeinfo Merged /alfresco/BRANCHES/V3.2:r17363,17384,17451,17459,17465,17478,17483,17493-17494,17510-17511,17513,17531,17550,17556,17558,17572-17573,17576 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@18140 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -45,7 +45,6 @@ import org.alfresco.repo.node.StoreArchiveMap;
|
||||
import org.alfresco.repo.node.index.NodeIndexer;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
|
||||
import org.alfresco.repo.transaction.TransactionListener;
|
||||
import org.alfresco.repo.transaction.TransactionListenerAdapter;
|
||||
import org.alfresco.repo.transaction.TransactionalResourceHelper;
|
||||
import org.alfresco.service.cmr.dictionary.AspectDefinition;
|
||||
@@ -276,18 +275,20 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
properties = Collections.emptyMap();
|
||||
}
|
||||
|
||||
// check the parent node has not been deleted in this txn
|
||||
if(isDeletedNodeRef(parentRef))
|
||||
{
|
||||
throw new InvalidNodeRefException("The parent node has been deleted", parentRef);
|
||||
}
|
||||
|
||||
// get/generate an ID for the node
|
||||
String newUuid = generateGuid(properties);
|
||||
|
||||
// Remove any system properties
|
||||
extractIntrinsicProperties(properties);
|
||||
|
||||
/**
|
||||
* Check the parent node has not been deleted in this txn.
|
||||
*/
|
||||
if(isDeletedNodeRef(parentRef))
|
||||
{
|
||||
throw new InvalidNodeRefException("The parent node has been deleted", parentRef);
|
||||
}
|
||||
|
||||
// Invoke policy behaviour
|
||||
invokeBeforeCreateNode(parentRef, assocTypeQName, assocQName, nodeTypeQName);
|
||||
|
||||
@@ -348,6 +349,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
* now and commit!
|
||||
*/
|
||||
trackNewNodeRef(childAssocRef.getChildRef());
|
||||
untrackDeletedNodeRef(childAssocRef.getChildRef());
|
||||
|
||||
// Index
|
||||
nodeIndexer.indexCreateNode(childAssocRef);
|
||||
@@ -393,6 +395,22 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
deletedNodes.add(deletedNodeRef);
|
||||
}
|
||||
|
||||
/**
|
||||
* Untrack a deleted node ref
|
||||
*
|
||||
* Used when a deleted node is restored.
|
||||
*
|
||||
* @param deletedNodeRef
|
||||
*/
|
||||
private void untrackDeletedNodeRef(NodeRef deletedNodeRef)
|
||||
{
|
||||
Set<NodeRef> deletedNodes = TransactionalResourceHelper.getSet(KEY_DELETED_NODES);
|
||||
if (deletedNodes.size() > 0)
|
||||
{
|
||||
deletedNodes.remove(deletedNodeRef);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isDeletedNodeRef(NodeRef deletedNodeRef)
|
||||
{
|
||||
Set<NodeRef> deletedNodes = TransactionalResourceHelper.getSet(KEY_DELETED_NODES);
|
||||
@@ -654,8 +672,8 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
// Set the type
|
||||
nodeDaoService.updateNode(nodePair.getFirst(), null, null, typeQName);
|
||||
|
||||
// Add the default aspects to the node (update the properties with any new default values)
|
||||
addDefaultAspects(nodePair, typeQName);
|
||||
// Add the default aspects and properties required for the given type. Existing values will not be overridden.
|
||||
addDefaults(nodePair, typeQName);
|
||||
|
||||
// Index
|
||||
nodeIndexer.indexUpdateNode(nodeRef);
|
||||
@@ -936,7 +954,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
}
|
||||
else
|
||||
{
|
||||
/**
|
||||
/*
|
||||
* Go ahead and archive the node
|
||||
*
|
||||
* Archiving will take responsibility for firing the policy behaviours on
|
||||
@@ -1007,7 +1025,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
nodeDaoService.deleteNode(childNodeId);
|
||||
invokeOnDeleteNode(childParentAssocRef, childNodeType, childNodeQNames, false);
|
||||
|
||||
// loose interest in tracking this node ref
|
||||
// lose interest in tracking this node ref
|
||||
untrackNewNodeRef(childNodeRef);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user