cancel
Showing results for 
Search instead for 
Did you mean: 

How to ignore old workflow definitions parsing errors

dadumancic
Champ in-the-making
Champ in-the-making
Hi,

we have upgraded Alfresco from 4.2.b to 4.2.e. Our Activiti process had to be changed as old process definition had errors with new version of Alfresco. One of them:
<blockcode>
Caused by: org.activiti.engine.ActivitiException: Errors while parsing:
Exclusive Gateway 'exclusivegateway8' has outgoing sequence flow 'flow38ignore' which is the default flow but has a condition too. |
</blockcode>
We have corrected the process and it works fine for new instances.
The problem we have is that any query to history will throw exception, as the Alfresco cannot load old workflow definitions. For example, if user opens 'My completed tasks' it will throw an error.
Can this be ignored/fixed?
I have found that Activiti has a property for enabling/disabling safe BPMN parsing: http://www.activiti.org/userguide/#advanced.safe.bpmn.xml
Is this applicable to Alfresco?

With regards,
Davorin
3 REPLIES 3

trademak
Star Contributor
Star Contributor
Hi Davorin,

Did the corrected process only contain a fix for the default flow issue, or were there more changes?
If there are no other changes the best solution would be to point running process instances to the new corrected process definition using the org.activiti.engine.impl.cmd.SetProcessDefinitionVersionCmd class.
Using the org.activiti.engine.ManagementService executeCommand method it's possible to execute this command and change the process instances one by one to the new process definition.
The property you are referring to for enabling/disabling safe BPMN parsing is not relevant.

Best regards,

Tijs

dadumancic
Champ in-the-making
Champ in-the-making
Thank you for your reply.
We do not have a problem with the running instances. All are using new process definition.
The problem occurs when we want to use any kind of historic data. For example, looking at the completed tasks or more generally when invoking getWorkflowsForContent method of the workflow service. Parsing exception is always thrown.
Can these old versions of the process just be removed somehow, without losing workflow and task history?
With regards,
Davorin

sanket
Champ on-the-rise
Champ on-the-rise
Has anybody found a solution to this problem ?
I have to upgrade from Alfresco 4.1.3 to Alfresco5.0
If I make a change in bpmn20.xml file, none of the old workflows are loaded and I get the same error on console :
Caused by: org.activiti.engine.ActivitiException: Errors while parsing:
Exclusive Gateway has only one outgoing sequence flow. This is not allowed to have a condition.