Project

General

Profile

Defect #2011

Updated by Ondřej Kopr over 4 years ago

*Simple usecase:* 
 When we create/update contract workPosition and this workPosition contains automatic role from organizational structure and attribute mapping for this role contains error/throw exception/etc the new assigned automatic role will not be assigned. -And And in IdM *doesn't exist* error in event queue or provisioning queue-. queue. Only error exists in application log. 

 *Project usecase:* 
 During contract slice synchronization was created new contract slice with workPosition that contains automatic role. This automatic role has system mapping and one of attribute mapping throw error during transformation script execution. -*The *The error doesnt't exits* in event queue or provisoning queue-, queue, missing error with combination contract slice synchronization and project implementation was this very difficult to debugging and analyze = I was little suck with project implementation, so sorry for longest debugging :( 

 Error in log: 
 <pre> 
 2020-01-17 14:54:20.551 ERROR 12993 --- [task-executor-2] e.b.i.c.m.s.i.DefaultEntityEventManager    : [core:GROOVY_SCRIPT_EXCEPTION:2cf7c100-41d4-49fd-a3d1-69a0e2712cbc] Script has some errors: [No such property: asdasd for class: Script1] ({message=No such property: asdasd for class: Script1}) 

 eu.bcvsolutions.idm.core.api.exception.ResultCodeException: Script has some errors: [No such property: asdasd for class: Script1] 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultGroovyScriptService.evaluate(DefaultGroovyScriptService.java:93) 
	 at eu.bcvsolutions.idm.acc.service.impl.DefaultSysSystemAttributeMappingService.transformValueToResource(DefaultSysSystemAttributeMappingService.java:200) 
	 at eu.bcvsolutions.idm.acc.service.impl.DefaultSysSystemAttributeMappingService.transformValueToResource(DefaultSysSystemAttributeMappingService.java:179) 
	 at eu.bcvsolutions.idm.acc.service.impl.DefaultSysSystemAttributeMappingService.getAttributeValue(DefaultSysSystemAttributeMappingService.java:584) 
	 at eu.bcvsolutions.idm.acc.service.impl.DefaultSysSystemAttributeMappingService$$FastClassBySpringCGLIB$$507e7707.invoke(<generated>) 
	 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
	 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:651) 
	 at eu.bcvsolutions.idm.acc.service.impl.DefaultSysSystemAttributeMappingService$$EnhancerBySpringCGLIB$$af90818b.getAttributeValue(<generated>) 
	 at eu.bcvsolutions.idm.acc.service.impl.AbstractProvisioningExecutor.getAttributeValue(AbstractProvisioningExecutor.java:848) 
	 at eu.bcvsolutions.idm.acc.service.impl.IdentityProvisioningExecutor.getAttributeValue(IdentityProvisioningExecutor.java:279) 
	 at eu.bcvsolutions.idm.acc.service.impl.IdentityProvisioningExecutor.getAttributeValue(IdentityProvisioningExecutor.java:76) 
	 at eu.bcvsolutions.idm.acc.service.impl.AbstractProvisioningExecutor.lambda$prepareMappedAttributesValues$34(AbstractProvisioningExecutor.java:792) 
	 at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 
	 at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 
	 at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380) 
	 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) 
	 at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 
	 at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) 
	 at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) 
	 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 
	 at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) 
	 at eu.bcvsolutions.idm.acc.service.impl.AbstractProvisioningExecutor.prepareMappedAttributesValues(AbstractProvisioningExecutor.java:773) 
	 at eu.bcvsolutions.idm.acc.service.impl.AbstractProvisioningExecutor.prepareProvisioning(AbstractProvisioningExecutor.java:677) 
	 at eu.bcvsolutions.idm.acc.service.impl.AbstractProvisioningExecutor.doProvisioning(AbstractProvisioningExecutor.java:737) 
	 at eu.bcvsolutions.idm.acc.service.impl.AbstractProvisioningExecutor.doInternalProvisioning(AbstractProvisioningExecutor.java:285) 
	 at eu.bcvsolutions.idm.acc.service.impl.DefaultProvisioningService.doInternalProvisioning(DefaultProvisioningService.java:81) 
	 at eu.bcvsolutions.idm.acc.event.processor.provisioning.ProvisioningStartProcessor.process(ProvisioningStartProcessor.java:64) 
	 at eu.bcvsolutions.idm.core.api.event.AbstractEntityEventProcessor.onApplicationEvent(AbstractEntityEventProcessor.java:238) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:348) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:247) 
	 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: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 eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$EnhancerBySpringCGLIB$$bee92223.process(<generated>) 
	 at eu.bcvsolutions.idm.acc.service.impl.AbstractProvisioningExecutor.doProvisioning(AbstractProvisioningExecutor.java:239) 
	 at eu.bcvsolutions.idm.acc.service.impl.DefaultProvisioningService.doProvisioning(DefaultProvisioningService.java:74) 
	 at eu.bcvsolutions.idm.acc.event.processor.RoleRequestRealizationProcessor.lambda$process$80(RoleRequestRealizationProcessor.java:139) 
	 at java.lang.Iterable.forEach(Iterable.java:75) 
	 at eu.bcvsolutions.idm.acc.event.processor.RoleRequestRealizationProcessor.process(RoleRequestRealizationProcessor.java:134) 
	 at eu.bcvsolutions.idm.core.api.event.AbstractEntityEventProcessor.onApplicationEvent(AbstractEntityEventProcessor.java:238) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:348) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:247) 
	 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: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 eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$EnhancerBySpringCGLIB$$bee92223.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:238) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:348) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:247) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:177) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.putToQueue(DefaultEntityEventManager.java:1049) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.publishNotify(DefaultEntityEventManager.java:347) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.changedEntity(DefaultEntityEventManager.java:320) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$FastClassBySpringCGLIB$$1694e58f.invoke(<generated>) 
	 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
	 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:651) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$EnhancerBySpringCGLIB$$bee92223.changedEntity(<generated>) 
	 at eu.bcvsolutions.idm.core.api.event.processor.AbstractPublishEntityChangeProcessor.process(AbstractPublishEntityChangeProcessor.java:41) 
	 at eu.bcvsolutions.idm.core.api.event.AbstractEntityEventProcessor.onApplicationEvent(AbstractEntityEventProcessor.java:238) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:348) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:247) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$FastClassBySpringCGLIB$$1694e58f.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 eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$EnhancerBySpringCGLIB$$bee92223.process(<generated>) 
	 at eu.bcvsolutions.idm.core.api.service.AbstractEventableDtoService.publish(AbstractEventableDtoService.java:62) 
	 at eu.bcvsolutions.idm.core.api.service.AbstractEventableDtoService.publish(AbstractEventableDtoService.java:51) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultIdmRoleRequestService.startRequestInternal(DefaultIdmRoleRequestService.java:395) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultIdmRoleRequestService.executeConceptsImmediate(DefaultIdmRoleRequestService.java:1039) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultIdmRoleRequestService.executeConceptsImmediate(DefaultIdmRoleRequestService.java:1003) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultIdmRoleRequestService$$FastClassBySpringCGLIB$$aec38c95.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 eu.bcvsolutions.idm.core.model.service.impl.DefaultIdmRoleRequestService$$EnhancerBySpringCGLIB$$fffaaaf5.executeConceptsImmediate(<generated>) 
	 at eu.bcvsolutions.idm.core.model.event.processor.contract.IdentityContractCreateByAutomaticRoleProcessor.process(IdentityContractCreateByAutomaticRoleProcessor.java:78) 
	 at eu.bcvsolutions.idm.core.api.event.AbstractEntityEventProcessor.onApplicationEvent(AbstractEntityEventProcessor.java:238) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:348) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:247) 
	 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: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 eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager$$EnhancerBySpringCGLIB$$bee92223.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:238) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) 
	 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381) 
	 at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:348) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultEntityEventManager.process(DefaultEntityEventManager.java:247) 
	 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:536) 
	 at org.springframework.security.concurrent.DelegatingSecurityContextRunnable.run(DelegatingSecurityContextRunnable.java:80) 
	 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) 
 Caused by: groovy.lang.MissingPropertyException: No such property: asdasd for class: Script1 
	 at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53) 
	 at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:458) 
	 at org.kohsuke.groovy.sandbox.impl.Checker$5.call(Checker.java:257) 
	 at org.kohsuke.groovy.sandbox.GroovyInterceptor.onGetProperty(GroovyInterceptor.java:61) 
	 at org.kohsuke.groovy.sandbox.GroovyValueFilter.onGetProperty(GroovyValueFilter.java:73) 
	 at org.kohsuke.groovy.sandbox.impl.Checker$5.call(Checker.java:255) 
	 at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:252) 
	 at org.kohsuke.groovy.sandbox.impl.Checker$checkedGetProperty.callStatic(Unknown Source) 
	 at Script1.run(Script1.groovy:1) 
	 at eu.bcvsolutions.idm.core.model.service.impl.DefaultGroovyScriptService.evaluate(DefaultGroovyScriptService.java:79) 
	 ... 143 common frames omitted 
 </pre> 

 Gif from assing: 
 https://drive.google.com/file/d/17S5euwIk0CmOC9t3GND6UI5uq1ga8tEI/view?usp=sharing 

 As quick fix can be used *AddNewAutomaticRoleTaskExecutor*, but the transformation script must be also fixed. 

 Affected version (tested version): 9.7.11

Back