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); } } }