diff --git a/source/java/org/alfresco/repo/workflow/BPMEngineRegistry.java b/source/java/org/alfresco/repo/workflow/BPMEngineRegistry.java index 3c37f98378..bbfebbb79a 100644 --- a/source/java/org/alfresco/repo/workflow/BPMEngineRegistry.java +++ b/source/java/org/alfresco/repo/workflow/BPMEngineRegistry.java @@ -38,7 +38,7 @@ 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 = "-"; /** Logging support */ private static Log logger = LogFactory.getLog("org.alfresco.repo.workflow"); diff --git a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java index fa7d4af6e1..43901614fb 100644 --- a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java +++ b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java @@ -113,6 +113,10 @@ public class JBPMEngine extends BPMEngine "and ti.isOpen = false " + "and ti.end is not null"; + // Workflow Path Seperators + private final static String WORKFLOW_PATH_SEPERATOR = "--"; + private final static String WORKFLOW_TOKEN_SEPERATOR = "@"; + // I18N labels private final static String TITLE_LABEL = "title"; private final static String DESC_LABEL = "description"; @@ -1050,7 +1054,7 @@ public class JBPMEngine extends BPMEngine protected Token getWorkflowToken(GraphSession session, String pathId) { // extract process id and token path within process - String[] path = pathId.split("::"); + String[] path = pathId.split(WORKFLOW_PATH_SEPERATOR); if (path.length != 2) { throw new WorkflowException("Invalid workflow path '" + pathId + "'"); @@ -1058,7 +1062,8 @@ public class JBPMEngine extends BPMEngine // retrieve jBPM token for workflow position ProcessInstance processInstance = session.loadProcessInstance(getJbpmId(path[0])); - Token token = processInstance.findToken(path[1]); + String tokenId = path[1].replace(WORKFLOW_TOKEN_SEPERATOR, "/"); + Token token = processInstance.findToken(tokenId); if (token == null) { throw new WorkflowException("Workflow path '" + pathId + "' does not exist"); @@ -1417,7 +1422,8 @@ public class JBPMEngine extends BPMEngine protected WorkflowPath createWorkflowPath(Token token) { WorkflowPath path = new WorkflowPath(); - path.id = createGlobalId(token.getProcessInstance().getId() + "::" + token.getFullName()); + String tokenId = token.getFullName().replace("/", WORKFLOW_TOKEN_SEPERATOR); + path.id = createGlobalId(token.getProcessInstance().getId() + WORKFLOW_PATH_SEPERATOR + tokenId); path.instance = createWorkflowInstance(token.getProcessInstance()); path.node = createWorkflowNode(token.getNode()); path.active = !token.hasEnded(); diff --git a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngineTest.java b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngineTest.java index f2884d8225..9617d15705 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("--@")); }