From 4e46906b913aad6e2be0addaf4c40c9884d525be Mon Sep 17 00:00:00 2001 From: David Caruana Date: Tue, 21 Feb 2006 19:29:42 +0000 Subject: [PATCH] - Fix AR-442 Error performing background import of several .acp files - ConcurrentModificationException - Support Import of ACP files that have Guest permission reference (re-map to Consumer) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2460 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repo/importer/ImporterComponent.java | 5 +++-- .../java/org/alfresco/repo/importer/view/NodeContext.java | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/source/java/org/alfresco/repo/importer/ImporterComponent.java b/source/java/org/alfresco/repo/importer/ImporterComponent.java index 41db85b96f..7241cb61b9 100644 --- a/source/java/org/alfresco/repo/importer/ImporterComponent.java +++ b/source/java/org/alfresco/repo/importer/ImporterComponent.java @@ -1181,14 +1181,16 @@ public class ImporterComponent // Create initial node (but, first disable behaviour for the node to be created) Set disabledBehaviours = getDisabledBehaviours(node); + List alreadyDisabledBehaviours = new ArrayList(); for (QName disabledBehaviour: disabledBehaviours) { boolean alreadyDisabled = behaviourFilter.disableBehaviour(disabledBehaviour); if (alreadyDisabled) { - disabledBehaviours.remove(disabledBehaviour); + alreadyDisabledBehaviours.add(disabledBehaviour); } } + disabledBehaviours.removeAll(alreadyDisabledBehaviours); // Build initial map of properties Map initialProperties = bindProperties(node); @@ -1276,7 +1278,6 @@ public class ImporterComponent ChildAssociationRef childAssocRef = nodeService.getPrimaryParent(existingNodeRef); // TODO: Check for root node - nodeService.removeChild(childAssocRef.getParentRef(), childAssocRef.getChildRef()); } } diff --git a/source/java/org/alfresco/repo/importer/view/NodeContext.java b/source/java/org/alfresco/repo/importer/view/NodeContext.java index 47fc09b041..3df16a381d 100644 --- a/source/java/org/alfresco/repo/importer/view/NodeContext.java +++ b/source/java/org/alfresco/repo/importer/view/NodeContext.java @@ -38,6 +38,7 @@ import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.security.AccessPermission; import org.alfresco.service.cmr.security.AccessStatus; import org.alfresco.service.cmr.security.AuthorityType; +import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.namespace.QName; @@ -340,6 +341,13 @@ public class NodeContext extends ElementContext */ public void addAccessControlEntry(AccessStatus accessStatus, String authority, String permission) { + // Note: Map guest permission to Consumer permission - this is to handle the case where + // exports made against a pre 1.2 RC2 release + if (permission.equalsIgnoreCase("guest")) + { + permission = PermissionService.CONSUMER; + } + ACE ace = new ACE(); ace.accessStatus = accessStatus; ace.authority = authority;