ibatis issue with simple process definition containing asynchronous service task

1,207 views
Skip to first unread message

ahi...@unitybox.de

unread,
Nov 7, 2013, 11:41:15 AM11/7/13
to camunda-...@googlegroups.com, Peter.G...@nttdata.com
Hi guys (& ladies?),


we have a simple process containing start event, service task (async) + end event.
We start it embedding the process engine (within a JUnit - Test) - and get the following ibatis error:

Nov 07, 2013 5:16:01 PM org.camunda.bpm.engine.impl.interceptor.CommandContext close
SEVERE: Error while closing command context
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: org.apache.ibatis.reflection.ReflectionException: Illegal overloaded getter method with ambiguous type for property scope in class class org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity. This breaks the JavaBeans specification and can cause unpredicatble results.
### Cause: org.apache.ibatis.reflection.ReflectionException: Illegal overloaded getter method with ambiguous type for property scope in class class org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity. This breaks the JavaBeans specification and can cause unpredicatble results.
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:150)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:137)
at org.camunda.bpm.engine.impl.db.DbSqlSession.flushInserts(DbSqlSession.java:679)
at org.camunda.bpm.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:499)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:211)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.close(CommandContext.java:154)
at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)
at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:32)
at org.camunda.bpm.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:58)
at com.olia.processes.test.NegotiationProcessTest.testNegotiation(NegotiationProcessTest.java:113)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.junit.rules.TestWatchman$1.evaluate(TestWatchman.java:53)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:158)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:86)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:95)
Caused by: org.apache.ibatis.reflection.ReflectionException: Illegal overloaded getter method with ambiguous type for property scope in class class org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity. This breaks the JavaBeans specification and can cause unpredicatble results.
at org.apache.ibatis.reflection.Reflector.resolveGetterConflicts(Reflector.java:136)
at org.apache.ibatis.reflection.Reflector.addGetMethods(Reflector.java:110)
at org.apache.ibatis.reflection.Reflector.<init>(Reflector.java:62)
at org.apache.ibatis.reflection.Reflector.forClass(Reflector.java:463)
at org.apache.ibatis.reflection.MetaClass.<init>(MetaClass.java:34)
at org.apache.ibatis.reflection.MetaClass.forClass(MetaClass.java:38)
at org.apache.ibatis.reflection.wrapper.BeanWrapper.<init>(BeanWrapper.java:37)
at org.apache.ibatis.reflection.MetaObject.<init>(MetaObject.java:51)
at org.apache.ibatis.reflection.MetaObject.forObject(MetaObject.java:59)
at org.apache.ibatis.session.Configuration.newMetaObject(Configuration.java:447)
at org.apache.ibatis.scripting.xmltags.DynamicContext.<init>(DynamicContext.java:43)
at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:36)
at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:275)
at org.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:61)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:36)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:42)
at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:464)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:43)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:100)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:148)
... 43 more


Camunda dependencies: version: 7.0.0-Final
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-engine</artifactId>
</dependency>
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-engine-spring</artifactId>
</dependency>


Database used: Postgres or H2 - same results..


Process definition:

<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://activiti.org/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="_eJ7OYEerEeOasLbqT8CwDg" targetNamespace="http://activiti.org/bpmn">
<bpmn2:collaboration id="_Collaboration_5">
<bpmn2:participant id="_Participant_5" name="Pool" processRef="NEGOTIATE_AGREEMENTS_ID"/>
</bpmn2:collaboration>
<bpmn2:process id="NEGOTIATE_AGREEMENTS_ID" name="NEGOTIATE_AGREEMENTS1" isExecutable="true">
<bpmn2:startEvent id="StartEvent_1" name="Start Event">
<bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:endEvent id="EndEvent_1" name="End Event">
<bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
</bpmn2:endEvent>
<bpmn2:serviceTask id="ServiceTask_1" camunda:expression="#{oliaReceiver.receive('BlaBla')}" camunda:async="true" name="Service Task">
<bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_1" targetRef="ServiceTask_1"/>
<bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="ServiceTask_1" targetRef="EndEvent_1"/>
</bpmn2:process>
<bpmndi:BPMNDiagram id="_BPMNDiagram_3" name="NEGOTIATE_AGREEMENTS1">
<bpmndi:BPMNPlane id="_BPMNPlane_3" bpmnElement="_Collaboration_5">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_6" bpmnElement="StartEvent_1">
<dc:Bounds height="36.0" width="36.0" x="107.0" y="166.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_EndEvent_5" bpmnElement="EndEvent_1">
<dc:Bounds height="36.0" width="36.0" x="453.0" y="181.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="22.0" width="65.0" x="439.0" y="222.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_Participant_5" bpmnElement="_Participant_5" isHorizontal="true">
<dc:Bounds height="220.0" width="554.0" x="0.0" y="76.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_ServiceTask_9" bpmnElement="ServiceTask_1">
<dc:Bounds height="80.0" width="100.0" x="277.0" y="159.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_6" targetElement="_BPMNShape_ServiceTask_9">
<di:waypoint xsi:type="dc:Point" x="143.0" y="184.0"/>
<di:waypoint xsi:type="dc:Point" x="210.0" y="184.0"/>
<di:waypoint xsi:type="dc:Point" x="210.0" y="199.0"/>
<di:waypoint xsi:type="dc:Point" x="277.0" y="199.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ServiceTask_9" targetElement="_BPMNShape_EndEvent_5">
<di:waypoint xsi:type="dc:Point" x="377.0" y="199.0"/>
<di:waypoint xsi:type="dc:Point" x="453.0" y="199.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>

Daniel Meyer

unread,
Nov 7, 2013, 12:02:05 PM11/7/13
to camunda-...@googlegroups.com, Peter.G...@nttdata.com
Hi Peter,

which version of Mybatis are you using?

Cheers,
Daniel Meyer

Grobarcik Peter

unread,
Nov 7, 2013, 12:03:18 PM11/7/13
to Daniel Meyer, camunda-...@googlegroups.com
Hallo, we use 3.2.3, th default dependency.

-----Ursprüngliche Nachricht-----
Von: Daniel Meyer [mailto:daniel...@camunda.com]
Gesendet: Donnerstag, 7. November 2013 18:02
An: camunda-...@googlegroups.com
Cc: Grobarcik Peter
Betreff: AW: [camunda-bpm-users] ibatis issue with simple process definition containing asynchronous service task
______________________________________________________________________
Disclaimer:This email and any attachments are sent in strictest confidence for the sole use of the addressee and may contain legally privileged, confidential, and proprietary data. If you are not the intended recipient, please advise the sender by replying promptly to this email and then delete and destroy this email and any attachments without any further use, copying or forwarding

Daniel Meyer

unread,
Nov 7, 2013, 12:16:34 PM11/7/13
to camunda-...@googlegroups.com, Daniel Meyer, peter.g...@nttdata.com
Hi Peter,

camunda BPM 7.0 Final depends on mybatis version 3.1.1. In this version, you should not get the exception.


Cheers,
Daniel Meyer

Daniel Meyer

unread,
Nov 7, 2013, 12:22:25 PM11/7/13
to camunda-...@googlegroups.com, Daniel Meyer, peter.g...@nttdata.com
I pushed a fix to master. Could you check with camunda BPM 7.1.0-SNAPSHOT whether the issue persists?

Grobarcik Peter

unread,
Nov 7, 2013, 12:36:38 PM11/7/13
to Daniel Meyer, camunda-...@googlegroups.com, Hilbig Andreas

Das war es! Ich bedanke mich herzlich für die schnelle Hilfe!

bart.br...@globalorange.nl

unread,
Feb 5, 2014, 3:44:28 AM2/5/14
to camunda-...@googlegroups.com, Daniel Meyer, Hilbig Andreas, peter.g...@nttdata.com
Op donderdag 7 november 2013 18:36:38 UTC+1 schreef Grobarcik Peter:
Hi Guys,

Sorry to bump the post. We've been working on the integration of Camunda in our application, which depends on mybatis 3.2.3, and still run into the same error.

Roman Smirnov

unread,
Feb 5, 2014, 3:57:06 AM2/5/14
to camunda-...@googlegroups.com, Daniel Meyer, Hilbig Andreas, peter.g...@nttdata.com, bart.br...@globalorange.nl
Hi,

which version of camunda BPM are you using? The fix is available since 7.1.0-alpha1.

Cheers,
Roman

Bart Brandhoff

unread,
Feb 5, 2014, 5:51:37 AM2/5/14
to Roman Smirnov, camunda-...@googlegroups.com, Daniel Meyer, Hilbig Andreas, peter.g...@nttdata.com
Initially we were using 7.0.0-Final, but we tried switching to the alpha version and still get the error. 


2014-02-05 Roman Smirnov <roman....@camunda.com>:



--
Kind regards,
Bart Brandhoff
____________________
GlobalOrange BV
Haarlemmerstraat 124E
1013EX Amsterdam
The Netherlands
(t) +31(0)20 420 4193

(skype) bart.brandhoff.globalorange
(e) bart.br...@globalorange.nl
(i) http://www.GlobalOrange.nl
(twitter) @GlobalOrangeNL




Roman Smirnov

unread,
Feb 5, 2014, 6:07:15 AM2/5/14
to camunda-...@googlegroups.com, Roman Smirnov, Daniel Meyer, Hilbig Andreas, peter.g...@nttdata.com, bart.br...@globalorange.nl
Hi Bart,

I am to reproduce it with the following exception:


Caused by: org.apache.ibatis.reflection.ReflectionException: Illegal overloaded getter method with ambiguous type for property processInstance in class class org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.  This breaks the JavaBeans specification and can cause unpredicatble results.
        at org.apache.ibatis.reflection.Reflector.resolveGetterConflicts(Reflector.java:136)
        at org.apache.ibatis.reflection.Reflector.addGetMethods(Reflector.java:110)
        at org.apache.ibatis.reflection.Reflector.<init>(Reflector.java:62)
        at org.apache.ibatis.reflection.Reflector.forClass(Reflector.java:463)
        at org.apache.ibatis.reflection.MetaClass.<init>(MetaClass.java:34)
        at org.apache.ibatis.reflection.MetaClass.forClass(MetaClass.java:38)
        at org.apache.ibatis.reflection.wrapper.BeanWrapper.<init>(BeanWrapper.java:37)
        at org.apache.ibatis.reflection.MetaObject.<init>(MetaObject.java:51)
        at org.apache.ibatis.reflection.MetaObject.forObject(MetaObject.java:59)
        at org.apache.ibatis.session.Configuration.newMetaObject(Configuration.java:447)
        at org.apache.ibatis.scripting.xmltags.DynamicContext.<init>(DynamicContext.java:43)
        at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:36)
        at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:275)
        at org.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:61)
        at org.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:36)
        at org.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:42)
        at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:464)
        at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:43)
        at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:100)
        at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75)
        at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:148)
        ... 30 more

 

Do you get the same exception?

I am going to reopen the associated Jira Issue CAM-1481.

Cheers,
Roman

Bart Brandhoff

unread,
Feb 5, 2014, 6:31:56 AM2/5/14
to Roman Smirnov, camunda-...@googlegroups.com, Daniel Meyer, Hilbig Andreas, peter.g...@nttdata.com
Hi Roman,

We're getting the exactly the same error, thanks for the quick response :)

cheers


2014-02-05 Roman Smirnov <roman....@camunda.com>:

Daniel Meyer

unread,
May 15, 2014, 5:19:38 AM5/15/14
to camunda-...@googlegroups.com, Roman Smirnov, Daniel Meyer, Hilbig Andreas, peter.g...@nttdata.com, bart.br...@globalorange.nl
The issue has been fixed and mybatis 3.2.3 will be fully supported in camunda BPM 7.2.0
Reply all
Reply to author
Forward
0 new messages