An error occurred while applying constraint's Groovy script. The entity has been filtered out.

I’ve set up a groovy script constraint for an UPDATE operation in Access Groups that looks like this
{E}.someBooleanProperty == true

and I’m getting this error log below, what Am I doing wrong?

currently, UPDATE operation is not being permited even though boolean is true or false.

13:43:27.841 ERROR c.h.cuba.core.sys.SecurityImpl - An error occurred while applying constraint's Groovy script. The entity has been filtered out.Entity class [stiletto$Atleta]. Entity [548].
java.lang.IllegalArgumentException: java.lang.ClassCastException@4e1b920e
        at sun.reflect.GeneratedMethodAccessor760.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at com.haulmont.chile.core.model.utils.MethodsCache.invokeSetter(MethodsCache.java:59) ~[cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.chile.core.model.impl.AbstractInstance.setValue(AbstractInstance.java:133) ~[cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.entity.BaseGenericIdEntity.setValue(BaseGenericIdEntity.java:129) ~[cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.chile.core.model.impl.AbstractInstance.setValue(AbstractInstance.java:117) ~[cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.global.MetadataTools.deepCopy(MetadataTools.java:913) ~[cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.global.MetadataTools.deepCopy(MetadataTools.java:901) ~[cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.global.MetadataTools.deepCopy(MetadataTools.java:865) ~[cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.sys.SecurityImpl.evaluateConstraintScript(SecurityImpl.java:240) [cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.sys.SecurityImpl.isPermitted(SecurityImpl.java:222) [cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.sys.SecurityImpl.isPermitted(SecurityImpl.java:210) [cuba-global-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.sys.SecurityImpl.isPermitted(SecurityImpl.java:156) [cuba-global-6.5.5.jar:6.5.5]
        at sun.reflect.GeneratedMethodAccessor715.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at com.haulmont.cuba.core.sys.PerformanceLogInterceptor.aroundInvoke(PerformanceLogInterceptor.java:29) [cuba-core-6.5.5.jar:6.5.5]
        at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at com.sun.proxy.$Proxy50.isPermitted(Unknown Source) [na:na]
        at com.haulmont.cuba.core.app.RdbmsStore.checkOperationPermitted(RdbmsStore.java:497) [cuba-core-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.app.RdbmsStore.commit(RdbmsStore.java:328) [cuba-core-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.core.app.DataManagerBean.commit(DataManagerBean.java:179) [cuba-core-6.5.5.jar:6.5.5]
        at sun.reflect.GeneratedMethodAccessor276.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at com.haulmont.cuba.core.app.DataManagerBean$SecureDataManagerInvocationHandler.invoke(DataManagerBean.java:356) [cuba-core-6.5.5.jar:6.5.5]
        at com.sun.proxy.$Proxy292.commit(Unknown Source) [na:na]
        at com.haulmont.cuba.core.app.DataServiceBean.commit(DataServiceBean.java:40) [cuba-core-6.5.5.jar:6.5.5]
        at sun.reflect.GeneratedMethodAccessor275.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:115) [cuba-core-6.5.5.jar:6.5.5]
        at sun.reflect.GeneratedMethodAccessor144.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) [spring-aop-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at com.sun.proxy.$Proxy96.commit(Unknown Source) [na:na]
        at sun.reflect.GeneratedMethodAccessor274.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at com.haulmont.cuba.core.sys.remoting.LocalServiceInvokerImpl.invoke(LocalServiceInvokerImpl.java:94) [cuba-core-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.web.sys.remoting.LocalServiceProxy$LocalServiceInvocationHandler.invoke(LocalServiceProxy.java:148) [cuba-web-6.5.5.jar:6.5.5]
        at com.sun.proxy.$Proxy193.commit(Unknown Source) [na:na]
        at com.haulmont.cuba.client.sys.DataManagerClientImpl.commit(DataManagerClientImpl.java:96) [cuba-client-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.gui.data.impl.GenericDataSupplier.commit(GenericDataSupplier.java:90) [cuba-gui-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.gui.data.impl.DsContextImpl.commit(DsContextImpl.java:166) [cuba-gui-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.gui.components.EditorWindowDelegate.commit(EditorWindowDelegate.java:281) [cuba-gui-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.web.gui.WebWindow$Editor.commitAndClose(WebWindow.java:1579) [cuba-web-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.gui.components.AbstractEditor.commitAndClose(AbstractEditor.java:109) [cuba-gui-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.gui.components.EditorWindowDelegate$2.actionPerform(EditorWindowDelegate.java:101) [cuba-gui-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.web.gui.components.WebButton.performAction(WebButton.java:44) [cuba-web-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.web.gui.components.WebButton.lambda$new$61446b05$1(WebButton.java:36) [cuba-web-6.5.5.jar:6.5.5]
        at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.ui.Button.fireClick(Button.java:377) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.haulmont.cuba.web.toolkit.ui.CubaButton.fireClick(CubaButton.java:54) ~[cuba-web-6.5.5.jar:6.5.5]
        at com.vaadin.ui.Button$1.click(Button.java:54) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at sun.reflect.GeneratedMethodAccessor163.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131]
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1422) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:385) ~[vaadin-server-7.7.9.cuba.0.jar:7.7.9.cuba.0]
        at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:290) ~[cuba-web-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:197) ~[cuba-web-6.5.5.jar:6.5.5]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[servlet-api.jar:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) ~[catalina.jar:8.5.9]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[catalina.jar:8.5.9]
        at com.haulmont.cuba.web.sys.CubaHttpFilter.handleNotFiltered(CubaHttpFilter.java:108) ~[cuba-web-6.5.5.jar:6.5.5]
        at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:95) ~[cuba-web-6.5.5.jar:6.5.5]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[catalina.jar:8.5.9]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[catalina.jar:8.5.9]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-websocket.jar:8.5.9]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[catalina.jar:8.5.9]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[catalina.jar:8.5.9]
        at com.haulmont.cuba.web.sys.singleapp.SingleAppWebContextLoader$SetClassLoaderFilter.doFilter(SingleAppWebContextLoader.java:170) ~[cuba-web-6.5.5.jar:6.5.5]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[catalina.jar:8.5.9]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[catalina.jar:8.5.9]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[catalina.jar:8.5.9]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[catalina.jar:8.5.9]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) ~[catalina.jar:8.5.9]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[catalina.jar:8.5.9]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) ~[catalina.jar:8.5.9]
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) ~[catalina.jar:8.5.9]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ~[catalina.jar:8.5.9]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) ~[catalina.jar:8.5.9]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) ~[tomcat-coyote.jar:8.5.9]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-coyote.jar:8.5.9]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789) ~[tomcat-coyote.jar:8.5.9]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437) ~[tomcat-coyote.jar:8.5.9]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote.jar:8.5.9]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_131]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_131]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:8.5.9]
        at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_131]
13:43:27.842 ERROR c.h.cuba.core.sys.ServiceInterceptor - Exception in DataService.commit(..): com.haulmont.cuba.core.global.RowLevelSecurityException: UPDATE is not permitted for entity com.appd.stiletto.entity.Atleta-548 [detached]
13:43:27.845 ERROR com.haulmont.cuba.web.log.AppLog - Exception in com.haulmont.cuba.web.toolkit.ui.CubaButton: com.haulmont.cuba.core.global.RowLevelSecurityException: UPDATE is not permitted for entity com.appd.stiletto.entity.Atleta-548 [detached]

Hi Ronald,

Could you provide a sample application with this error?

Thanks,
Andrey Subbotin

Hi, Ronald
We fixed the problem in the 6.6.0 version. The problem is caused by MetadataTools.deepCopy and it isn’t used for security constraints now.

Thanks,
Subbotin Andrey

:ticket: See the following issue in our bug tracker:

https://youtrack.cuba-platform.com/issue/PL-9150