From b534affa6852d2624622a021fd7aaa65d7cec4bc Mon Sep 17 00:00:00 2001 From: Neil McErlean Date: Thu, 26 Mar 2009 15:49:01 +0000 Subject: [PATCH] NodeHandler was mishandling multiple associations of the same type. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13752 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/forms/processor/NodeHandler.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/source/java/org/alfresco/repo/forms/processor/NodeHandler.java b/source/java/org/alfresco/repo/forms/processor/NodeHandler.java index f913f82500..675cf3e6b0 100644 --- a/source/java/org/alfresco/repo/forms/processor/NodeHandler.java +++ b/source/java/org/alfresco/repo/forms/processor/NodeHandler.java @@ -409,15 +409,23 @@ public class NodeHandler extends AbstractHandler assocFieldDefs.put(assocName, fieldDef); } + String prefixedAssocName = ASSOC_PREFIX + assocName; + if (fieldDef.isEndpointMany()) { + List targets = null; + // add the value as a List (or add to the list if the form data // is already present) - List targets = (List)formData.getData().get(assocName); - if (targets == null) + FieldData fieldData = formData.getData().get(prefixedAssocName); + if (fieldData == null) { targets = new ArrayList(4); - formData.addData(ASSOC_PREFIX + assocName, targets); + formData.addData(prefixedAssocName, targets); + } + else + { + targets = (List)fieldData.getValue(); } // add the assoc value to the list @@ -426,7 +434,7 @@ public class NodeHandler extends AbstractHandler else { // there should only be one value - formData.addData(ASSOC_PREFIX + assocName, assocValue); + formData.addData(prefixedAssocName, assocValue); } } }