This query can fail during parallel execution:
taskService.createTaskQuery.taskCandidateGroup("foo").list();
The exception is along the lines of:
Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ibatis.builder.BuilderException: Error evaluating expression 'candidateGroups != null && candidateGroups.size() > 0'. Cause: org.apache.ibatis.ognl.MethodFailedException: Method "size" failed for object [...] [java.lang.IllegalAccessException: Class org.apache.ibatis.ognl.OgnlRuntime can not access a member of class java.util.Collections$SingletonList with modifiers "public"] ### Cause: org.apache.ibatis.builder.BuilderException: Error evaluating expression 'candidateGroups != null && candidateGroups.size() > 0'. Cause: org.apache.ibatis.ognl.MethodFailedException: Method "size" failed for object [...] [java.lang.IllegalAccessException: Class org.apache.ibatis.ognl.OgnlRuntime can not access a member of class java.util.Collections$SingletonList with modifiers "public"] at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:26) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:111) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:102) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:66) at org.camunda.bpm.engine.impl.db.sql.DbSqlSession.selectOne(DbSqlSession.java:107)
Reason: Can't use private classes as Mybatis query parameters with Mybatis 3.2.8, see CAM-4078. We have another instance of this here: https://github.com/camunda/camunda-bpm-platform/blob/7.6.0-alpha5/engine/src/main/java/org/camunda/bpm/engine/impl/TaskQueryImpl.java#L850-L859
Solution possibilities:
- update MyBatis dependency (this must be a conscious product management decision; Mybatis is a central library and an update is not without risk)
- don't use private classes (if going this route, check this for all existing queries we have)