Filter components dependency that reference component

Hi Team ,

We are using Cuba version 7.2.6

I’m trying to create new filter that will have two lookup components

our Data Model is like below

We have Public Holiday Entity that have Many-to-one relation ship With another two Entities
Country And Employees Group

Employees Group has many to one relation ship with Country

So I was trying to create new Filter which will contain country as first layer filter
then create new Filter with the below criteria

Country Filter component Name : component$filter.country82519

Where

{E}.employeesGroup.country.id=:component$filter.country82519
or
{E}.employeesGroup.country.id= ?

Param Type

Entity

Entity

Employees Group

Where param

e.country.id=:component$filter.country82519

But When I’m saving the below Exception is thrown

RuntimeException: Component not found: filter.country82519

  java.lang.RuntimeException: Component not found: filter.country82519
	at com.haulmont.cuba.gui.sys.FrameContextImpl.addValueChangeListener(FrameContextImpl.java:163)
	at com.haulmont.cuba.gui.components.FilterDataContext.getQueryParameterValues(FilterDataContext.java:180)
	at com.haulmont.cuba.gui.components.FilterDataContext.loadAll(FilterDataContext.java:113)
	at com.haulmont.cuba.gui.components.filter.edit.ConditionFrame.createDefaultValueComponent(ConditionFrame.java:105)
	at com.haulmont.cuba.gui.components.filter.edit.ConditionFrame.setCondition(ConditionFrame.java:92)
	at com.haulmont.cuba.gui.components.filter.edit.CustomConditionFrame.setCondition(CustomConditionFrame.java:208)
	at com.company.vp.web.system.administration.filter.ExtCustomConditionFrame.setCondition(ExtCustomConditionFrame.java:21)
	at com.company.vp.web.system.administration.filter.ExtCustomConditionFrame.setCondition(ExtCustomConditionFrame.java:8)
	at com.haulmont.cuba.gui.components.filter.edit.FilterEditor.lambda$init$1(FilterEditor.java:277)
	at com.haulmont.bali.events.EventRouter.fireEvent(EventRouter.java:45)
	at com.haulmont.cuba.gui.data.impl.AbstractDatasource.fireItemChanged(AbstractDatasource.java:262)
	at com.haulmont.cuba.gui.data.impl.AbstractCollectionDatasource.setItem(AbstractCollectionDatasource.java:100)
	at com.haulmont.cuba.gui.components.data.tree.DatasourceTreeItems.setSelectedItem(DatasourceTreeItems.java:142)
	at com.haulmont.cuba.web.gui.components.WebTree.onSelectionChange(WebTree.java:1063)
	at com.vaadin.ui.components.grid.SingleSelectionModel.lambda$addSelectionListener$91fe6b9f$1(SingleSelectionModel.java:56)
	at jdk.internal.reflect.GeneratedMethodAccessor327.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:496)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:273)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:237)
	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1041)
	at com.vaadin.ui.components.grid.SingleSelectionModelImpl.setSelectedFromServer(SingleSelectionModelImpl.java:179)
	at com.vaadin.ui.components.grid.SingleSelectionModelImpl.select(SingleSelectionModelImpl.java:97)
	at com.vaadin.ui.Grid.select(Grid.java:4201)
	at com.vaadin.ui.Tree.select(Tree.java:541)
	at com.haulmont.cuba.web.gui.components.WebTree.setSelectedInternal(WebTree.java:1154)
	at com.haulmont.cuba.web.gui.components.WebTree.setSelected(WebTree.java:1145)
	at com.haulmont.cuba.web.gui.components.WebTree.setSelected(WebTree.java:1130)
	at com.haulmont.cuba.gui.components.filter.edit.FilterEditor.lambda$init$2(FilterEditor.java:305)
	at com.haulmont.cuba.gui.components.filter.AddConditionHelper.lambda$_addCondition$1(AddConditionHelper.java:121)
	at com.haulmont.cuba.gui.components.compatibility.AfterCloseListenerAdapter.accept(AfterCloseListenerAdapter.java:58)
	at com.haulmont.cuba.gui.components.compatibility.AfterCloseListenerAdapter.accept(AfterCloseListenerAdapter.java:26)
	at com.haulmont.bali.events.EventHub.publish(EventHub.java:170)
	at com.haulmont.cuba.gui.screen.Screen.fireEvent(Screen.java:128)
	at com.haulmont.cuba.gui.screen.Screen.close(Screen.java:343)
	at com.haulmont.cuba.gui.components.Window.close(Window.java:250)
	at com.haulmont.cuba.gui.components.filter.edit.CustomConditionEditor.commit(CustomConditionEditor.java:70)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.haulmont.cuba.gui.xml.DeclarativeAction.actionPerform(DeclarativeAction.java:101)
	at com.haulmont.cuba.web.gui.components.WebButton.buttonClicked(WebButton.java:67)
	at com.haulmont.cuba.web.widgets.CubaButton.fireClick(CubaButton.java:76)
	at com.vaadin.ui.Button$1.click(Button.java:57)
	at jdk.internal.reflect.GeneratedMethodAccessor374.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:153)
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:115)
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:431)
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:396)
	at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:260)
	at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:82)
	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1578)
	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:425)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:329)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:215)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:93)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)

Hi,
It looks like a bug. We’ve created the issue: References to filter components in paramWhere conditions are broken · Issue #2933 · cuba-platform/cuba · GitHub