The log attached is from my working CUBA 7 application that, once a hot-deploy action happens, throws this error. Also, the hot-deploy mechanism runs fast on xml files, but when I modify a UI Controller, once I hit Ctrl-S (to trigger the hot-deploy), CUBA Studio 7 IDE freezes until the hot-deploy finishes. It wouldn’t be that big of a deal, but then, the hot-deploy logs contain almost the ENTIRE UI module (I see that almost every class has been hot-deployed). error.log (7.1 KB)
Issue happening on
CUBA Studio 2018.3 (IntelliJ Edition)
Build #CS-183.10.1, built on June 7, 2019
JRE: 1.8.0_152-release-1343-b28 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.18.0-25-generic
Also, project runs on Java 11 – openjdk@1.11.0 (the one that jabba installs) and on platform-7.0.8 as CUBA Platform version.
EDIT: Added the logs of the hot-deploy. hot-deploy.log (29.7 KB) Keep in mind that I edited a SINGLE Controller.
Sure, thanks for the fast reply. Confirmed this issue on MacOS build of the Studio also. It seems a flaw in the hot-deploy mechanism, not an issue with just some use-cases.
LE: This error seems to be thrown in catalina.out when hot-deploy tries to do it’s magic.
18:47:39.820 ERROR c.h.c.core.sys.TriggerFilesProcessor - Trigger file C:\Users\alexa\Documents\webby\cuba-migration\scope-fb\deploy\tomcat\temp\scope-fb\triggers\cuba_WindowConfig.loadScreenClass('net.kprism.scope.fb.web.sensory.SensoryFrame') processing error: {}
java.lang.NoSuchMethodException: com.haulmont.cuba.gui.config.WindowConfig.loadScreenClass(java.lang.String)
at java.base/java.lang.Class.getMethod(Class.java:2109) ~[na:na]
at com.haulmont.cuba.core.sys.TriggerFilesProcessor.processFile(TriggerFilesProcessor.java:138) ~[cuba-global-7.0.8.jar:7.0.8]
at com.haulmont.cuba.core.sys.TriggerFilesProcessor.process(TriggerFilesProcessor.java:93) ~[cuba-global-7.0.8.jar:7.0.8]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na]
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[na:na]
at com.haulmont.cuba.core.sys.CubaThreadPoolTaskScheduler$TaskDecorator.run(CubaThreadPoolTaskScheduler.java:121) ~[cuba-global-7.0.8.jar:7.0.8]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
CUBA Studio 2019.1 (IntelliJ Edition)
Build #CS-191.7479.110, built on July 9, 2019
JRE: 1.8.0_202-release-1483-b53 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
Did not freeze anymore, but still does not work. The error is still thrown on every action I do inside the App after the hot-deploy takes place.
You said, that after the error has occurred, hot deploy completely finishes. We found a problem with CUBA 7 @UiController controllers, but the hot deploy of legacy screens should work as usual. Could you say, is hot deploy works on legacy screens after the exception?
The project I’m working on has all the screens migrated to the new API. The main window though, from what I know, uses the legacy API and the hot deploy used to work for that screen.
@shustanov, the project I am working at is a closed-source enterprise project so sharing it is not possible, unfortunately. I will investigate if it is indeed working and I shall come with an answer by end of day.
@prashanth thank you for your input. Will try some more to see if it is indeed fixed.
LE: After the App start-up, I get this message in logs and it raised me some questions.
INFO: Server startup in 29336 ms
16:47:22.055 INFO c.h.cuba.gui.config.WindowConfig - WindowConfig initialized in 145 ms
16:47:23.688 WARN c.v.s.communication.ServerRpcHandler -
=================================================================
The widgetset in use does not seem to be built for the Vaadin
version in use. This might cause strange problems - a
recompile/deploy is strongly recommended.
Vaadin version: 8.8.5-1-cuba
Widgetset version: 8.6.4-17-cuba
=================================================================
Yes! It works, but I needed to create web-toolkit module for it to work… Have no idea why. Anyway, now it does work.
LE: It started not working after a server restart… Same error is thrown in logs.
My final opinion after today is that hot-deploy still does NOT work as expected.