Flowable Upgrade issue from v5.23 to v6.5

Hi,

I am also trying to migration from flowable v5.22 to v6.5.
as mentioned I have also added following code for migration

processEngineConfiguration.setFlowable5CompatibilityEnabled(true);
processEngineConfiguration.setFlowable5CompatibilityHandlerFactory(springFlowable5CompatibilityHandlerFactory());
processEngineConfiguration.setFlowable5ExpressionManager(new org.activiti.engine.impl.el.ExpressionManager());

After doing the changes, DB upgrades successfully. Processing Engine also starts, but when actioned on any of the existing task which were created before migration getting following error

Caused by: org.activiti.engine.ActivitiException: Unknown property used in expression: ${UserAction.doUserAction(execution)}
at org.activiti.engine.impl.el.JuelExpression.getValue(JuelExpression.java:55) ~[flowable5-engine-6.5.0.jar:6.5.0]
at org.activiti.engine.impl.bpmn.behavior.ServiceTaskExpressionActivityBehavior.execute(ServiceTaskExpressionActivityBehavior.java:79) ~[flowable5-engine-6.5.0.jar:6.5.0]
… 62 common frames omitted
Caused by: org.flowable.common.engine.impl.javax.el.PropertyNotFoundException: Cannot resolve identifier ‘UserAction’
at org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstIdentifier.eval(AstIdentifier.java:97) ~[flowable-engine-common-6.5.0.jar:6.5.0]
at org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstMethod.eval(AstMethod.java:84) ~[flowable-engine-common-6.5.0.jar:6.5.0]
at org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstMethod.eval(AstMethod.java:107) ~[flowable-engine-common-6.5.0.jar:6.5.0]
at org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstEval.eval(AstEval.java:53) ~[flowable-engine-common-6.5.0.jar:6.5.0]
at org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstNode.getValue(AstNode.java:31) ~[flowable-engine-common-6.5.0.jar:6.5.0]
at org.flowable.common.engine.impl.de.odysseus.el.TreeValueExpression.getValue(TreeValueExpression.java:122) ~[flowable-engine-common-6.5.0.jar:6.5.0]
at org.activiti.engine.impl.delegate.ExpressionGetInvocation.invoke(ExpressionGetInvocation.java:34) ~[flowable5-engine-6.5.0.jar:6.5.0]
at org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:35) ~[flowable5-engine-6.5.0.jar:6.5.0]
at org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:26) ~[flowable5-engine-6.5.0.jar:6.5.0]
at org.activiti.engine.impl.el.JuelExpression.getValue(JuelExpression.java:52) ~[flowable5-engine-6.5.0.jar:6.5.0]
… 63 common frames omitted

UserAction is the bean which I am calling from the service task.
Once I upload the bpmn definition in v6, this starts to work again, without any change.

I tried to debug the issue. Not able to pin-point the issue. Here are few observations

org.flowable.common.engine.impl.de.odysseus.el.TreeValueExpression.getValue(TreeValueExpression.java:122) >> Bindings dont have values related to expression.

Because of that org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstIdentifier.eval is not able to find valueExpression. and due to that base (beanname) is passed as null to org.flowable.common.engine.impl.javax.el.getValue

Capture

To me its due to bindings in “org.flowable.common.engine.impl.de.odysseus.el.TreeValueExpression” doesn’t have appropriate values.
BeanElResolver can’t resolve the bean if base is passed as null and property is passed as beanName.

Any suggestion?

Can you clarify how you exposed that bean? In Spring? Spring Boot? Programmatically?

These are spring beans.

@Named(“UserAction”)
public class UserActionImpl {