After migration to Studio 6.7, I can’t open the layout of several screens. When selecting the “Layout” tab at the screen editor, a pop up appears with the message “Validation error” and no other message in the console. This prevents the layout screen from opening.
This error appears in some “complex” screens. I can edit other “simple” screen. It seems there is a validation layout error, but instead of showing what the error is in the layout editor, it stops there.
Datasource ghsAttributesDs: Property field is empty
Because I don’t have the correct data model, so it’s expected. As for the rest XML descriptor, I don’t see any critical issues and I can open the Layout tab. What particular CUBA Studio version do you use? Try to open the screen in the IDEA IDE with CUBA Idea plug-in installed and check if there are any errors.
In my case, I opened the XML and controller in IDEA and it found no errors at all.
When tried to edit the screen (after seeing the XML source file), I got the following stack trace error:
[15:29:03.585] Ready
[15:29:40.917] Validation error
[15:30:25.508] Unexpected error
java.lang.NullPointerException
[15:30:25.509] Exception has been thrown by com.haulmont.studio.ui.app.a@52227a41:
[15:30:25.517] java.lang.NullPointerException
at com.haulmont.studio.ui.sd.layout.ScreenLayoutDesigner.isLayoutAnalysisDisabled(SourceFile:453)
at com.haulmont.studio.ui.sd.n.b(SourceFile:237)
at com.haulmont.studio.ui.i.buttonClick(SourceFile:207)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
at com.vaadin.ui.Button.fireClick(Button.java:377)
at com.vaadin.ui.Button$1.click(Button.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
I have migrated from 6.6.x to 6.7.2. After that, I am receiving Validation Error for all screen with buttons. If I remove the button action, the Validation Error is gone.
If I create a brand new project, the problem does not happen.
Unfortunatly we still can’t reproduce the ‘Validation error’ issue.
Could you please attach some sample project with this error reproducing?
Nevertheless, additional logging was provided for screen opening process. So as soon Studio 6.7.2 released, please provide us log file containing described error.
Hi,
I also have this problem.
I am using Studio 6.7.1 and platform 6.7.2.
Project was migrated from an earlier version don’t remember exact version.
I atached a test project test.zip (627.0 KB)
When i try to save the screen i get the following error:
2017-11-08 19:25:00,245 INFO [com.vaadin.server.VaadinServlet] Requested resource [/VAADIN/ace/worker-xml.js] not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder.
2017-11-08 19:25:05,928 ERROR [com.haulmont.studio.ui.app.App] Exception occured
com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method click in com.vaadin.shared.ui.button.ButtonServerRpc
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:160)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1436)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:385)
at com.haulmont.studio.ui.app.aY.service(SourceFile:90)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
... 28 more
Caused by: com.vaadin.event.ListenerMethod$MethodException: Invocation of method buttonClick in com.haulmont.studio.ui.i failed.
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:530)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
at com.vaadin.ui.Button.fireClick(Button.java:377)
at com.vaadin.ui.Button$1.click(Button.java:54)
... 32 more
Caused by: java.lang.NullPointerException
at com.haulmont.studio.ui.sd.layout.ScreenLayoutDesigner.isLayoutAnalysisDisabled(SourceFile:453)
at com.haulmont.studio.ui.sd.n.b(SourceFile:237)
at com.haulmont.studio.ui.i.buttonClick(SourceFile:207)
at sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
... 37 more
I’m afraid you can’t get the fix in advance. But the good news is that Studio 6.7.2 is expected to be released tomorrow.
As a temporary workaround, you can try to remove com.haulmont.cuba packages with localization files from your project.
For sure this will break your application localization, but the screens should be available for editing.