From cb40050bcdefffae13951f60fc266f5afb742d06 Mon Sep 17 00:00:00 2001 From: Gavin Cornwell Date: Fri, 11 Aug 2006 11:44:31 +0000 Subject: [PATCH] Bug fixes for handling mapping of users git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3482 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/workflow/jbpm/JBPMEngine.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java index b41087abd7..1b5b67d3a0 100644 --- a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java +++ b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java @@ -910,16 +910,23 @@ public class JBPMEngine extends BPMEngine // perform data conversions // NOTE: Only convert Authority name to NodeRef for now - QName qname = QName.createQName(key); + QName qname = QName.createQName(key, this.namespaceService); AssociationDefinition assocDef = taskAssocs.get(qname); if (assocDef != null && assocDef.getTargetClass().equals(ContentModel.TYPE_PERSON)) { // TODO: Also support group authorities - if (!(value instanceof String[])) + if (value instanceof String[]) + { + value = mapNameToAuthority((String[])value); + } + else if (value instanceof String) + { + value = mapNameToAuthority(new String[] {(String)value}); + } + else { throw new WorkflowException("Task variable '" + qname + "' value is invalid format"); } - value = mapNameToAuthority((String[])value); } // place task variable in map to return @@ -1020,9 +1027,10 @@ public class JBPMEngine extends BPMEngine { // if association is to people, map them to authority names // TODO: support group authorities - if (assocDef.getTargetClass().equals(ContentModel.TYPE_PERSON)) + if (assocDef.getTargetClass().getName().equals(ContentModel.TYPE_PERSON)) { - value = mapAuthorityToName((List)value); + String[] authorityNames = mapAuthorityToName((List)value); + value = ((assocDef.isTargetMany()) ? authorityNames : authorityNames[0]); } // map association to specific jBPM task instance field @@ -1043,7 +1051,7 @@ public class JBPMEngine extends BPMEngine } else { - name = key.toString(); + name = key.toPrefixString(this.namespaceService); } instance.setVariableLocally(name, value); }