当我配置节点超时使用以数字开头的表达式变量如下:
<state name="guardedWait" g="98,46,127,52">
<on event="timeout">
<timer duedate="#{4c6771e788b511df9fe80016eca5d82f}" repeat="#{repeat}" />
<event-listener class="org.jbpm.examples.timer.repeat.Escalate" />
</on>
<transition name="go on" to="next step" g="-16,-17"/>
</state>
JBPM报异常如下:
org.jbpm.api.JbpmException: script evaluation error: javax.el.ELException: Error parsing '#{4c6771e788b511df9fe80016eca5d82f}': syntax error at position 3, encountered 'c6771e788b511df9fe80016eca5d82f', expected '}'
at org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:130)
at org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:118)
at org.jbpm.pvm.internal.script.ScriptManager.evaluateExpression(ScriptManager.java:90)
at org.jbpm.pvm.internal.job.TimerImpl.setDueDateDescription(TimerImpl.java:76)
at org.jbpm.pvm.internal.model.ScopeInstanceImpl.createTimer(ScopeInstanceImpl.java:303)
at org.jbpm.pvm.internal.model.ScopeInstanceImpl.initializeTimers(ScopeInstanceImpl.java:323)
at org.jbpm.pvm.internal.model.ExecutionImpl.initializeScopes(ExecutionImpl.java:238)
at org.jbpm.pvm.internal.model.ExecutionImpl.start(ExecutionImpl.java:213)
at org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:61)
at org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:55)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
at org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceById(ExecutionServiceImpl.java:58)
at cn.ceopen.xframework.workflow.biz.impl.FlowEngineBizImpl.startProcess(FlowEngineBizImpl.java:1305)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy4.startProcess(Unknown Source)
at cn.ceopen.xproduct.workflow.biz.impl.FlowExecutionBizImpl.startProcess(FlowExecutionBizImpl.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy12.startProcess(Unknown Source)
at cn.ceopen.xproduct.workflow.biz.TestSerialTaskNode.testSerialTaskNode(TestSerialTaskNode.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: javax.script.ScriptException: javax.el.ELException: Error parsing '#{4c6771e788b511df9fe80016eca5d82f}': syntax error at position 3, encountered 'c6771e788b511df9fe80016eca5d82f', expected '}'
at org.jbpm.pvm.internal.script.JuelScriptEngine.parse(JuelScriptEngine.java:167)
at org.jbpm.pvm.internal.script.JuelScriptEngine.eval(JuelScriptEngine.java:62)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
at org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:126)
... 65 more
Caused by: javax.el.ELException: Error parsing '#{4c6771e788b511df9fe80016eca5d82f}': syntax error at position 3, encountered 'c6771e788b511df9fe80016eca5d82f', expected '}'
at de.odysseus.el.tree.impl.Builder.build(Builder.java:114)
at de.odysseus.el.tree.TreeStore.get(TreeStore.java:62)
at de.odysseus.el.TreeValueExpression.<init>(TreeValueExpression.java:68)
at de.odysseus.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:203)
at de.odysseus.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:74)
at org.jbpm.pvm.internal.script.JuelScriptEngine.parse(JuelScriptEngine.java:162)
... 68 more