cancel
Showing results for 
Search instead for 
Did you mean: 

13 Activiti 5.0.rc1 JUnit4 Test Cases FAILED in Grails

limcheekin
Champ on-the-rise
Champ on-the-rise
Hi there,

I am ported the Activiti examples to JUnit4 styles, but 13 test cases are FAILED.

Given activiti.cfg.xml file:
<activiti-cfg process-engine-name='activiti-engine-test'>
  <database type='h2' schema-strategy='create-if-necessary'>
    <jdbc url='jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000' driver='org.h2.Driver' username='sa' password='' />
  </database>
  <job-executor activate='false' />
  <mail server='localhost' port='5025' default-from='username@yourserver.com' />
</activiti-cfg>

Test Results:
Running 48 unit tests…
Running test org.activiti.examples.bpmn.receivetask.ReceiveTaskTest…PASSED
Running test org.activiti.examples.bpmn.gateway.ExclusiveGatewayTest…PASSED
Running test org.activiti.examples.bpmn.gateway.ParallelGatewayTest…PASSED
Running test org.activiti.examples.bpmn.mail.EmailServiceTaskTest…PASSED
Running test org.activiti.examples.bpmn.subprocess.SubProcessTest…PASSED
Running test org.activiti.examples.bpmn.scripttask.ScriptTaskTest…PASSED
Running test org.activiti.examples.bpmn.event.timer.BoundaryTimerEventTest…PASSED
Running test org.activiti.examples.bpmn.servicetask.MethodExpressionServiceTaskTest…PASSED
Running test org.activiti.examples.bpmn.servicetask.ExpressionServiceTaskTest…PASSED
Running test org.activiti.examples.bpmn.servicetask.JavaServiceTaskTest…PASSED
Running test org.activiti.examples.bpmn.eventlistener.EventListenerTest…
                    testEventListenersOnAllPossibleElements…FAILED
Running test org.activiti.examples.bpmn.usertask.taskcandidate.TaskCandidateTest…PASSED
Running test org.activiti.examples.bpmn.usertask.taskassignee.TaskAssigneeTest…PASSED
Running test org.activiti.examples.bpmn.usertask.FinancialReportProcessTest…PASSED
Running test org.activiti.examples.bpmn.callactivity.CallActivityTest…
                    testOrderProcessWithCallActivity…FAILED
Running test org.activiti.examples.bpmn.expression.UelExpressionTest…PASSED
Running test org.activiti.examples.mgmt.ManagementServiceTest…
                    testTableCount…FAILED
Running test org.activiti.examples.mgmt.TablePageQueryTest…
                    testGetTablePage…FAILED
                    testGetSortedTablePage…FAILED
Running test org.activiti.examples.task.StandaloneTaskTest…PASSED
Running test org.activiti.examples.processdefinitions.ProcessDefinitionsTest…
                    testGetProcessDefinitions…FAILED
                    testDeployIdenticalProcessDefinitions…FAILED
Running test org.activiti.examples.taskforms.TaskFormsTest…
                    testTaskFormsWithVacationRequestProcess…FAILED
                    testTaskFormUnavailable…FAILED
Running test org.activiti.examples.identity.IdentityTest…PASSED
Running test org.activiti.examples.pvm.PvmTest…PASSED
Running test org.activiti.examples.variables.jpa.JPAVariableTest…
                    testStoreJPAEntityAsVariable…FAILED
                    testIllegalEntities…FAILED
                    testQueryJPAVariable…FAILED
                    testUpdateJPAEntityValues…FAILED
Running test org.activiti.examples.variables.VariablesTest…PASSED
Tests Completed in 68428ms …
——————————————————-
Tests passed: 35
Tests failed: 13
——————————————————-

Attached here is the test-reports and source code of the test cases for your reference:
[attachment=0]test-reports.zip[/attachment]
[attachment=1]activiti-examples-test-cases.zip[/attachment]

Any ideas why the 13 tests failed?

Regards,
Chee Kin
13 REPLIES 13

jbarrez
Star Contributor
Star Contributor
Looks like a classloading problem. Is there anything special classloading going on the grails environment ?

coudn't deserialize object in variable 'myPojo'

org.activiti.engine.ActivitiException: coudn't deserialize object in variable 'myPojo'
at org.activiti.engine.impl.variable.SerializableType.getValue(SerializableType.java:60)
at org.activiti.engine.impl.runtime.VariableInstanceEntity.getValue(VariableInstanceEntity.java:154)
at org.activiti.engine.impl.runtime.VariableMap.get(VariableMap.java:76)
at org.activiti.engine.impl.pvm.runtime.ExecutionImpl.getVariable(ExecutionImpl.java:541)
at org.activiti.engine.impl.el.ExecutionVariableElResolver.getValue(ExecutionVariableElResolver.java:50)
at org.activiti.engine.impl.javax.el.CompositeELResolver.getValue(CompositeELResolver.java:231)
at org.activiti.engine.impl.juel.AstIdentifier.eval(AstIdentifier.java:81)
at org.activiti.engine.impl.juel.AstMethod.invoke(AstMethod.java:79)
at org.activiti.engine.impl.juel.AstMethod.eval(AstMethod.java:75)
at org.activiti.engine.impl.juel.AstEval.eval(AstEval.java:50)
at org.activiti.engine.impl.juel.AstNode.getValue(AstNode.java:26)
at org.activiti.engine.impl.juel.TreeValueExpression.getValue(TreeValueExpression.java:114)
at org.activiti.engine.impl.el.JuelExpression.getValue(JuelExpression.java:44)
at org.activiti.engine.impl.bpmn.ExpressionEventListener.notify(ExpressionEventListener.java:35)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:38)
at org.activiti.engine.impl.pvm.runtime.ExecutionImpl.performOperation(ExecutionImpl.java:523)
at org.activiti.engine.impl.pvm.runtime.ExecutionImpl.deleteCascade(ExecutionImpl.java:239)
at org.activiti.engine.impl.db.DbRuntimeSession.deleteProcessInstance(DbRuntimeSession.java:63)
at org.activiti.engine.impl.db.DbRepositorySession.deleteProcessInstances(DbRepositorySession.java:138)
at org.activiti.engine.impl.db.DbRepositorySession.deleteDeployment(DbRepositorySession.java:124)
at org.activiti.engine.impl.cmd.DeleteDeploymentCmd.execute(DeleteDeploymentCmd.java:36)
at org.activiti.engine.impl.cmd.DeleteDeploymentCmd.execute(DeleteDeploymentCmd.java:22)
at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:22)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:36)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.RepositoryServiceImpl.deleteDeploymentCascade(RepositoryServiceImpl.java:51)
at org.activiti.engine.impl.test.TestHelper.annotationDeploymentTearDown(TestHelper.java:102)
at org.activiti.engine.test.ActivitiRule.finished(ActivitiRule.java:116)
at TestApp$_run_closure4.doCall(TestApp:269)
at TestApp$_run_closure4.call(TestApp)
at TestApp$_run_closure2.doCall(TestApp:226)
at TestApp$_run_closure1_closure21.doCall(TestApp:185)
at TestApp$_run_closure1.doCall(TestApp:172)
at TestApp$_run_closure1.doCall(TestApp.groovy:101)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Caused by: java.lang.ClassNotFoundException: org.activiti.examples.bpmn.eventlistener.ExampleEventListenerPojo

limcheekin
Champ on-the-rise
Champ on-the-rise
Yes. But it is not specific to Grails environment, it is more on Groovy environment.


Caused by: java.lang.ClassNotFoundException: org.activiti.examples.bpmn.eventlistener.ExampleEventListenerPojo
at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at org.activiti.engine.impl.variable.SerializableType.getValue(SerializableType.java:49)
When you continue look down to the stack trace, you can see org.codehaus.groovy.tools.RootLoader. It is special classloader of Groovy.

Regards,
Chee Kin

jbarrez
Star Contributor
Star Contributor
Ok, that could explain it.

But we have more tests that use a pojo that is in the src/main/resource/org/activiti/… package. Why isnt this class found ?

limcheekin
Champ on-the-rise
Champ on-the-rise
Ok, that could explain it.

But we have more tests that use a pojo that is in the src/main/resource/org/activiti/… package. Why isnt this class found ?

Yes, I doubt on that also.

Regards,
Chee Kin

rguenther
Champ in-the-making
Champ in-the-making
I found this topic for following Exception:
ActivitiException: coudn't deserialize object in variable
and solved the problem adding "implements Serializable" and the the field "private static final long serialVersionUID = 1L;" to the class.

limcheekin
Champ on-the-rise
Champ on-the-rise
Great! Thanks for solution provided. I will try it out.

Best regards,
Chee Kin

limcheekin
Champ on-the-rise
Champ on-the-rise
Hi there,

The activiti plugin 5.7 has the same error even existing POJO class implemented the solution you mentioned, you can try out the latest plugin released few days ago.


Error while evalutaing expression

org.activiti.engine.ActivitiException: Error while evalutaing expression
at org.activiti.engine.impl.el.JuelExpression.getValue(JuelExpression.java:61)
at org.activiti.engine.impl.bpmn.listener.ExpressionExecutionListener.notify(ExpressionExecutionListener.java:35)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:38)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationDeleteCascade.execute(AtomicOperationDeleteCascade.java:31)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.deleteCascade(ExecutionEntity.java:930)
at org.activiti.engine.impl.persistence.entity.ExecutionManager.deleteProcessInstance(ExecutionManager.java:70)
at org.activiti.engine.impl.persistence.entity.ExecutionManager.deleteProcessInstancesByProcessDefinition(ExecutionManager.java:37)
at org.activiti.engine.impl.persistence.entity.DeploymentManager.deleteDeployment(DeploymentManager.java:55)
at org.activiti.engine.impl.cmd.DeleteDeploymentCmd.execute(DeleteDeploymentCmd.java:40)
at org.activiti.engine.impl.cmd.DeleteDeploymentCmd.execute(DeleteDeploymentCmd.java:24)
at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.RepositoryServiceImpl.deleteDeployment(RepositoryServiceImpl.java:55)
at org.activiti.engine.impl.test.TestHelper.annotationDeploymentTearDown(TestHelper.java:105)
at org.activiti.engine.test.ActivitiRule.finished(ActivitiRule.java:119)
Caused by: org.activiti.engine.ActivitiException: coudn't deserialize object in variable 'myPojo'
at org.activiti.engine.impl.variable.SerializableType.getValue(SerializableType.java:60)
at org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.getValue(VariableInstanceEntity.java:158)
at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.getVariable(VariableScopeImpl.java:93)
at org.activiti.engine.impl.el.VariableScopeElResolver.getValue(VariableScopeElResolver.java:57)
at org.activiti.engine.impl.javax.el.CompositeELResolver.getValue(CompositeELResolver.java:231)
at org.activiti.engine.impl.juel.AstIdentifier.eval(AstIdentifier.java:81)
at org.activiti.engine.impl.juel.AstMethod.invoke(AstMethod.java:79)
at org.activiti.engine.impl.juel.AstMethod.eval(AstMethod.java:75)
at org.activiti.engine.impl.juel.AstEval.eval(AstEval.java:50)
at org.activiti.engine.impl.juel.AstNode.getValue(AstNode.java:26)
at org.activiti.engine.impl.juel.TreeValueExpression.getValue(TreeValueExpression.java:114)
at org.activiti.engine.impl.delegate.ExpressionGetInvocation.invoke(ExpressionGetInvocation.java:33)
at org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:37)
at org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:25)
at org.activiti.engine.impl.el.JuelExpression.getValue(JuelExpression.java:50)
at org.activiti.engine.impl.bpmn.listener.ExpressionExecutionListener.notify(ExpressionExecutionListener.java:35)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:38)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationDeleteCascade.execute(AtomicOperationDeleteCascade.java:31)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:76)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:481)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.deleteCascade(ExecutionEntity.java:930)
at org.activiti.engine.impl.persistence.entity.ExecutionManager.deleteProcessInstance(ExecutionManager.java:70)
at org.activiti.engine.impl.persistence.entity.ExecutionManager.deleteProcessInstancesByProcessDefinition(ExecutionManager.java:37)
at org.activiti.engine.impl.persistence.entity.DeploymentManager.deleteDeployment(DeploymentManager.java:55)
at org.activiti.engine.impl.cmd.DeleteDeploymentCmd.execute(DeleteDeploymentCmd.java:40)
at org.activiti.engine.impl.cmd.DeleteDeploymentCmd.execute(DeleteDeploymentCmd.java:24)
at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
at org.activiti.engine.impl.RepositoryServiceImpl.deleteDeployment(RepositoryServiceImpl.java:55)
at org.activiti.engine.impl.test.TestHelper.annotationDeploymentTearDown(TestHelper.java:105)
at org.activiti.engine.test.ActivitiRule.finished(ActivitiRule.java:119)
at _GrailsTest_groovy$_run_closure4.doCall(_GrailsTest_groovy:271)
at _GrailsTest_groovy$_run_closure4.call(_GrailsTest_groovy)
at _GrailsTest_groovy$_run_closure2.doCall(_GrailsTest_groovy:228)
at _GrailsTest_groovy$_run_closure1_closure21.doCall(_GrailsTest_groovy:187)
at _GrailsTest_groovy$_run_closure1.doCall(_GrailsTest_groovy:174)
at TestApp$_run_closure1.doCall(TestApp.groovy:82)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Caused by: java.lang.ClassNotFoundException: org.activiti.examples.bpmn.executionlistener.ExampleExecutionListenerPojo
at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at org.activiti.engine.impl.variable.SerializableType.getValue(SerializableType.java:49)

Best regards,
Chee Kin

jbarrez
Star Contributor
Star Contributor
Seems like a classloading issue to me (see the ClassNotFoundException), did you add the pojo to the test runner classpath?

limcheekin
Champ on-the-rise
Champ on-the-rise
Hi Joram,

Thanks for response.

The POJO located in same directory as per the test cases. But I not sure I missed anything unknown to me.

Best regards,
Chee Kin