Defect #2725
Updated by Alena Peterová almost 4 years ago
Tested on 10.7.2 and 10.8.1
Steps to reproduce:
* create an organization (in my case "Organization three")
* create at least 2 users in this organization ("threeOneUser", "threeSecondUser")
* create a role which assigns account in a system (can be virtual) ("RoleForThree")
* create an automatic role by organizational structure ("RoleForThree" without recursion on "OrganizationThree")
Result: One of the users doesn't have the role. The task ProcessAutomaticRoleByTreeTaskExecutor stays **Waiting** and no other task of this type can start => no other new automatic roles are assigned.
Note: It doesn't happen always, but in cca 50 % cases.
Task scheduler:
!scheduler.png!
Events:
!entity_events.png!
Detail of the failed request:
!rolerequest.png!
<pre>
java.lang.IllegalArgumentException: Concept is not executed [CONCEPT], identity role identifier is empty.
at org.springframework.util.Assert.notNull(Assert.java:198)
at eu.bcvsolutions.idm.core.scheduler.task.impl.ProcessAutomaticRoleByTreeTaskExecutor.lambda$null$0(ProcessAutomaticRoleByTreeTaskExecutor.java:270)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at eu.bcvsolutions.idm.core.scheduler.task.impl.ProcessAutomaticRoleByTreeTaskExecutor.lambda$end$1(ProcessAutomaticRoleByTreeTaskExecutor.java:278)
at java.lang.Iterable.forEach(Iterable.java:75)
at eu.bcvsolutions.idm.core.scheduler.task.impl.ProcessAutomaticRoleByTreeTaskExecutor.end(ProcessAutomaticRoleByTreeTaskExecutor.java:263)
at eu.bcvsolutions.idm.core.scheduler.task.impl.ProcessAutomaticRoleByTreeTaskExecutor.end(ProcessAutomaticRoleByTreeTaskExecutor.java:91)
at eu.bcvsolutions.idm.core.scheduler.api.service.AbstractLongRunningTaskExecutor.notifyEnd(AbstractLongRunningTaskExecutor.java:293)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.lambda$completeEvent$13(DefaultEntityEventManager.java:1431)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.completeEvent(DefaultEntityEventManager.java:1429)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.completeEvent(DefaultEntityEventManager.java:1408)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:252)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:177)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$FastClassBySpringCGLIB$$1694e58f.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$EnhancerBySpringCGLIB$$389cc354.process(<generated>)
at eu.bcvsolutions.idm.core.model.event.processor.event.EntityEventExecuteProcessor.process(EntityEventExecuteProcessor.java:52)
at eu.bcvsolutions.idm.core.api.event.AbstractEntityEventProcessor.onApplicationEvent(AbstractEntityEventProcessor.java:239)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:372)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:250)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:177)
at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$2.run(DefaultEntityEventManager.java:615)
at eu.bcvsolutions.idm.core.config.DelegatingTransactionContextRunnable.run(DelegatingTransactionContextRunnable.java:39)
at org.springframework.security.concurrent.DelegatingSecurityContextRunnable.run(DelegatingSecurityContextRunnable.java:84)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
</pre>