Issue with 'Candidate groups'

Hi all,
first of all I wanna congratulate you for the great work and the new adventure.

I come from a project where Activiti was choosen as the BPM suite to support business processes.
Switching to Flowable i’m studying the new UI of Flowable V6.
I’m experiencing an issue. I’m adding a GROUP to the Assignments section of a User Task.
When I try to log in the Workflow Application with an authenticated user of that group, I can’t find the right “matching tasks” (the result is the same using the Identity store or the Fixed Values).
The platform works correctly when I use the ‘Candidate users’ or ‘Assigned to single user’ section.

Thanks in advance,
Luca

Hi Luca,

first of all; thanks!

How are you " …adding a GROUP to the Assignments section of a User Task… "?
For groups only selecting a candidate group assignment is available.

Regards,

Yvo

Hi yvo,
as you can see the assignment is correct. But the users of those groups can’t find any tasks to claim.
Thanks,
Luca

So you’ve added 2 candidate groups to a user task. Started the process instance in the Flowable Task UI App. Logged in with a user that is a member of one of the candidate groups. And there is no task in the visible in the Task App?

Just to make sure; did you select the correct filter?

Regards,

Yvo

Yes. But when I select “Task where I am one of the candidates” I get the following exception.

> 10:37:05,119 [http-bio-8080-exec-16] ERROR org.flowable.engine.common.impl.interceptor.AbstractCommandContext  - Error while closing command context
> org.apache.ibatis.exceptions.PersistenceException:
> ### Error querying database.  Cause: java.lang.NullPointerException
> ### Cause: java.lang.NullPointerException
>         at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
>         at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
>         at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
>         at org.flowable.engine.impl.db.DbSqlSession.selectListWithRawParameter(DbSqlSession.java:321)
>         at org.flowable.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:306)
>         at org.flowable.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:301)
>         at org.flowable.engine.impl.persistence.entity.data.impl.MybatisTaskDataManager.findTasksByQueryCriteria(MybatisTaskDataManager.java:66)
>         at org.flowable.engine.impl.persistence.entity.TaskEntityManagerImpl.findTasksByQueryCriteria(TaskEntityManagerImpl.java:249)
>         at org.flowable.engine.impl.TaskQueryImpl.executeList(TaskQueryImpl.java:1289)
>         at org.flowable.engine.impl.AbstractQuery.execute(AbstractQuery.java:163)
>         at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:39)
>         at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:80)
>         at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:59)
>         at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:44)
>         at org.flowable.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:51)
>         at org.flowable.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:64)
>         at org.flowable.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
>         at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
>         at org.flowable.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
>         at org.flowable.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
>         at org.flowable.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:44)
>         at org.flowable.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:39)
>         at org.flowable.engine.impl.AbstractQuery.listPage(AbstractQuery.java:144)
>         at org.flowable.engine.impl.TaskQueryImpl.listPage(TaskQueryImpl.java:1605)
>         at org.flowable.app.service.runtime.FlowableTaskQueryService.listTasks(FlowableTaskQueryService.java:165)
>         at org.flowable.app.service.runtime.FlowableTaskQueryService$$FastClassBySpringCGLIB$$18c15272.invoke(<generated>)
>         at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
>         at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>         at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
>         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>         at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)
>         at org.flowable.app.service.runtime.FlowableTaskQueryService$$EnhancerBySpringCGLIB$$39fbc565.listTasks(<generated>)
>         at org.flowable.app.rest.runtime.TaskQueryResource.listTasks(TaskQueryResource.java:33)
>         at sun.reflect.GeneratedMethodAccessor985.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>         at java.lang.reflect.Method.invoke(Unknown Source)
>         at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
>         at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
>         at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
>         at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:817)
>         at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:731)
>         at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
>         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
>         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
>         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
>         at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:870)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
>         at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>         at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
>         at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
>         at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.flowable.app.filter.FlowableCookieFilter.doFilterInternal(FlowableCookieFilter.java:151)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>         at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>         at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
>         at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
>         at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>         at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
>         at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
>         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.NullPointerException
>         at org.flowable.engine.impl.IdentityServiceImpl.createGroupQuery(IdentityServiceImpl.java:69)
>         at org.flowable.engine.DefaultCandidateManager.getGroupsForCandidateUser(DefaultCandidateManager.java:19)
>         at org.flowable.engine.impl.TaskQueryImpl.getGroupsForCandidateUser(TaskQueryImpl.java:1160)
>         at org.flowable.engine.impl.TaskQueryImpl.getCandidateGroups(TaskQueryImpl.java:1146)
>         at sun.reflect.GeneratedMethodAccessor903.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>         at java.lang.reflect.Method.invoke(Unknown Source)
>         at org.apache.ibatis.reflection.invoker.MethodInvoker.invoke(MethodInvoker.java:41)
>         at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:164)
>         at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:49)
>         at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122)
>         at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextMap.get(DynamicContext.java:94)
>         at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:108)
>         at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2663)
>         at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:114)
>         at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
>         at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
>         at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)
>         at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
>         at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
>         at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
>         at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
>         at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
>         at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:494)
>         at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:458)
>         at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:44)
>         at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)
>         at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)
>         at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
>         at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:35)
>         at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
>         at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)
>         at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
>         at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:41)
>         at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:292)
>         at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)
>         at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
>         ... 102 more

Hi Luca,

Which version are you using? The Flowable 6 RC1?

Best regards,

Tijs

Yes Tijs,

Regards,
Luca

Ah ok, in the following commit the issue should have been fixed:

This was done after the RC1 release.

Best regards,

Tijs

Ok, I’ll try building from Github :+1:

Thanks,
Luca

ThankYou Sir
the same problem more then 1 Months.
Question:
im new here with flowable
Can i use the same flowable Application with modeler idm and rest in a project spring …
if i can, how to put them step by step…