ClassCastException in EntityInspector

Hello! I was trying to create new nested entity1 for another entity2 in EntityInspector and I catch this

ClassCastException: class com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorEditor cannot be cast to class com.haulmont.cuba.gui.components.Window$Editor (com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorEditor and com.haulmont.cuba.gui.components.Window$Editor are in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @2e54db99)
java.lang.ClassCastException: class com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorEditor cannot be cast to class com.haulmont.cuba.gui.components.Window$Editor (com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorEditor and com.haulmont.cuba.gui.components.Window$Editor are in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @2e54db99)
	at com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorEditor$CreateAction.actionPerform(EntityInspectorEditor.java:1102)
	at com.haulmont.cuba.web.gui.components.WebButton.buttonClicked(WebButton.java:62)
	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.GeneratedMethodAccessor790.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:1577)
	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:107)
	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73)
	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:108)
	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:199)
	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:668)
	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:834)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
	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)

If I try to edit created nested intity1 all is ok, or if I try to create a new entity1 from EntityInspector it works. This exception appears only when I open entity2 editor in EntityInspector and there I try to create new nested entities1. What can it be?

Hello @michaelkruglov17

It seems that we’ve fixed related problem here:

Could you clarify what version of CUBA do you use? Is it possible to share demo project to investigate the problem?

Regards,
Daniil

I am using platform 7.0.2. Unfortunately we can’t change it yet. Test project:

Hi @michaelkruglov17,
Thank you for your sample project.

The steps to reproduce are:

  1. Open Entity inspector
  2. Select the Customer entity
  3. Create a new instance of Customer
  4. Switch to the Orders tab and create a new Order

Right? If so, the issue is fixed in 7.0.10.

Try to update CUBA version from 7.0.2 to the latest 7.0 (7.0.12 at the moment). There should be no fundamental changes - only bugfixes. Do not forget to Update Database.

Regards.