Project

General

Profile

Actions

Defect #2725

closed

Adding automatic roles by tree structures fails and the task blocks other new automatic roles

Added by Alena Peterová about 3 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
High
Assignee:
Radek Tomiška
Category:
Automatic roles
Target version:
Start date:
03/22/2021
Due date:
% Done:

100%

Estimated time:

Description

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:

Events:

Detail of the failed request:

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)

Files

entity_events.png (53.4 KB) entity_events.png Alena Peterová, 03/22/2021 04:13 PM
rolerequest.png (60 KB) rolerequest.png Alena Peterová, 03/22/2021 04:13 PM
scheduler.png (46.3 KB) scheduler.png Alena Peterová, 03/22/2021 04:13 PM

Related issues

Related to IdStory Identity Manager - Task #2444: Implement waiting for the completion of the LRT after all asynchronous eventsClosedRadek Tomiška08/18/2020

Actions
Actions

Also available in: Atom PDF