diff --git a/source/java/org/alfresco/repo/workflow/BPMEngineRegistry.java b/source/java/org/alfresco/repo/workflow/BPMEngineRegistry.java index bbfebbb79a..fa2ebfaca7 100644 --- a/source/java/org/alfresco/repo/workflow/BPMEngineRegistry.java +++ b/source/java/org/alfresco/repo/workflow/BPMEngineRegistry.java @@ -38,7 +38,8 @@ import org.apache.commons.logging.LogFactory; public class BPMEngineRegistry { /** ID seperator used in global Ids */ - private static final String ID_SEPERATOR = "-"; + private static final String ID_SEPERATOR = "$"; + private static final String ID_SEPERATOR_REGEX = "\\$"; /** Logging support */ private static Log logger = LogFactory.getLog("org.alfresco.repo.workflow"); @@ -159,7 +160,7 @@ public class BPMEngineRegistry */ public static String[] getGlobalIdParts(String globalId) { - String[] parts = globalId.split(ID_SEPERATOR); + String[] parts = globalId.split(ID_SEPERATOR_REGEX); if (parts.length != 2) { throw new WorkflowException("Invalid Global Id '" + globalId + "'"); diff --git a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java index 43901614fb..bc3582f012 100644 --- a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java +++ b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java @@ -114,7 +114,7 @@ public class JBPMEngine extends BPMEngine "and ti.end is not null"; // Workflow Path Seperators - private final static String WORKFLOW_PATH_SEPERATOR = "--"; + private final static String WORKFLOW_PATH_SEPERATOR = "-"; private final static String WORKFLOW_TOKEN_SEPERATOR = "@"; // I18N labels @@ -1198,7 +1198,7 @@ public class JBPMEngine extends BPMEngine // map property to specific jBPM task instance field if (key.equals(WorkflowModel.PROP_DUE_DATE)) { - if (!(value instanceof Date)) + if (value != null && !(value instanceof Date)) { throw new WorkflowException("Task due date '" + value + "' is invalid"); } @@ -1216,7 +1216,7 @@ public class JBPMEngine extends BPMEngine } else if (key.equals(ContentModel.PROP_OWNER)) { - if (!(value instanceof String)) + if (value != null && !(value instanceof String)) { throw new WorkflowException("Task owner '" + value + "' is invalid"); } diff --git a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngineTest.java b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngineTest.java index 9617d15705..c5d376b6ba 100644 --- a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngineTest.java +++ b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngineTest.java @@ -131,7 +131,7 @@ public class JBPMEngineTest extends BaseSpringTest WorkflowDefinition workflowDef = getTestDefinition(); WorkflowPath path = workflowComponent.startWorkflow(workflowDef.id, null); assertNotNull(path); - assertTrue(path.id.endsWith("--@")); + assertTrue(path.id.endsWith("-@")); assertNotNull(path.node); assertNotNull(path.instance); assertEquals(workflowDef.id, path.instance.definition.id); @@ -154,7 +154,7 @@ public class JBPMEngineTest extends BaseSpringTest WorkflowPath path = workflowComponent.startWorkflow(workflowDef.id, params); assertNotNull(path); - assertTrue(path.id.endsWith("--@")); + assertTrue(path.id.endsWith("-@")); assertNotNull(path.node); assertNotNull(path.instance); assertEquals(workflowDef.id, path.instance.definition.id); @@ -187,7 +187,7 @@ public class JBPMEngineTest extends BaseSpringTest WorkflowPath path = workflowComponent.startWorkflow(workflowDef.id, params); assertNotNull(path); - assertTrue(path.id.endsWith("--@")); + assertTrue(path.id.endsWith("-@")); assertNotNull(path.node); assertNotNull(path.instance); assertEquals(workflowDef.id, path.instance.definition.id); @@ -279,7 +279,7 @@ public class JBPMEngineTest extends BaseSpringTest assertNotNull(paths); assertEquals(1, paths.size()); assertEquals(instances.get(0).id, paths.get(0).instance.id); - assertTrue(paths.get(0).id.endsWith("--@")); + assertTrue(paths.get(0).id.endsWith("-@")); }