cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot fetch 'My Tasks' when the user is in pooled task

amitev
Champ in-the-making
Champ in-the-making
Hi all! I have the following case:
A task where users are added to a pool review task. When the adding task is done, tasks are assigned to the selected users. When one of these users opens Alfresco Share an error message "Error loading items" in "My Tasks" dashlet.

The following exception is printed in the console:


18:07:12,621  ERROR [extensions.webscripts.AbstractRuntime] Exception from executeScript - redirecting to status template error: 04040012 Wrapped Exception (with status template): A QName must consist of a local name
org.springframework.extensions.webscripts.WebScriptException: 04040012 Wrapped Exception (with status template): A QName must consist of a local name
   at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:758)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:171)
   at org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:377)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:381)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:436)
   at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:466)
   at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:304)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:333)
   at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:189)
   at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:118)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:662)
Caused by: org.alfresco.service.namespace.InvalidQNameException: A QName must consist of a local name
   at org.alfresco.service.namespace.QName.createQName(QName.java:86)
   at org.alfresco.repo.security.authority.AuthorityDAOImpl.getAuthorityOrNull(AuthorityDAOImpl.java:658)
   at org.alfresco.repo.security.authority.AuthorityDAOImpl.getContainedAuthorities(AuthorityDAOImpl.java:439)
   at org.alfresco.repo.security.authority.AuthorityServiceImpl.getContainedAuthorities(AuthorityServiceImpl.java:385)
   at org.alfresco.repo.workflow.WorkflowServiceImpl.isUserInPooledActors(WorkflowServiceImpl.java:992)
   at org.alfresco.repo.workflow.WorkflowServiceImpl.isTaskClaimable(WorkflowServiceImpl.java:743)
   at sun.reflect.GeneratedMethodAccessor915.invoke(Unknown Source)
   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:183)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
   at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:44)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.alfresco.repo.audit.AuditMethodInterceptor.proceedWithAudit(AuditMethodInterceptor.java:217)
   at org.alfresco.repo.audit.AuditMethodInterceptor.proceed(AuditMethodInterceptor.java:184)
   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:137)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy71.isTaskClaimable(Unknown Source)
   at org.alfresco.repo.web.scripts.workflow.WorkflowModelBuilder.buildSimple(WorkflowModelBuilder.java:189)
   at org.alfresco.repo.web.scripts.workflow.QviTaskInstancesGet.buildModel(QviTaskInstancesGet.java:173)
   at org.alfresco.repo.web.scripts.workflow.AbstractWorkflowWebscript.executeImpl(AbstractWorkflowWebscript.java:79)
   at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:64)
   … 24 more

I debugged the code and in WorkflowServiceImpl.isUserInPooledActors() there are the following lines:


final Collection<?> actors = (Collection<?>)task.getProperties().get(WorkflowModel.ASSOC_POOLED_ACTORS);
        if (actors != null && !actors.isEmpty())
        {
            for (Object actor : actors)
            {
                // retrieve the name of the group
                Map<QName, Serializable> props = nodeService.getProperties((NodeRef)actor);
                String name = (String)props.get(ContentModel.PROP_AUTHORITY_NAME);
                …..

In my case the cm:authorityName (ContentModel.PROP_AUTHORITY_NAME) attribute is null and this causes the exception. What is wrong with this and how to fix it?
3 REPLIES 3

amitev
Champ in-the-making
Champ in-the-making
Looks like the pooledreview is not meant to work with list of assignees instead of list of group assignees. Is that true and could that be changed?

amitev
Champ in-the-making
Champ in-the-making
I implemented my own version of WorkflowServiceImpl where I allow adding users as actors to a pooled review. If someone needs the code I can provide it.

eljuaner
Confirmed Champ
Confirmed Champ
I have the same problem. Could you put here your code?

Thanks!!