Servoy 2024.03.5_LTS

We are pleased to announce the availability of Servoy 2024.3.5_LTS (release number 3948)

See 2024.3.5_lts_fixes for the list of fixes for this release since 2024.3.5

This version is available through the download site

or through the update site URL: http://download.servoy.com/developer/lts
If you want to use the LTS release enable the above LTS update site and disable the ‘latest’ update site so you only update to LTS updates.

if you want to stick to the 2023 LTS (2023.3.9 LTS) then disabled the lts and latest updates sites, and add this site: https://download.servoy.com/developer/lts_2023/

You are strongly recommended to move over to one of the supported branches (2023.03 LTS or 2024.03 LTS or 2024 Latest)

For solutions that are already in production it is a good idea to stick to this version (2024.3.x) or be on the 2023.3. x release

This is the last release that has support for SmartClient and Webclient

jcompagner:
This version is available through the download site

Congrats!

But this LTS is not on download site (yet?) [.4 is latest ]

that was fixed last night also, just some caches that needs to be updated…

Thanks

Anybody else getting this when deploying a WAR?

Tomcat: 9
Java: 21

2025-02-14 03:56:35,314 ERROR [main] com.servoy.j2db.util.Debug - Can't start the application server [ ]
javax.servlet.ServletException: Can't start the application server
	at com.servoy.j2db.server.servlets.WarClientServletContextListener.startAppServer(WarClientServletContextListener.java:33) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.servlets.WarClientServletContextListener.contextInitialized(WarClientServletContextListener.java:264) [j2dbdev.jar:2024.3.5.3948_LTS]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4059) [catalina.jar:9.0.99]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4501) [catalina.jar:9.0.99]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) [catalina.jar:9.0.99]
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599) [catalina.jar:9.0.99]
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571) [catalina.jar:9.0.99]
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:603) [catalina.jar:9.0.99]
	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1014) [catalina.jar:9.0.99]
	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1866) [catalina.jar:9.0.99]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.99]
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) [?:?]
	at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:816) [catalina.jar:9.0.99]
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468) [catalina.jar:9.0.99]
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1584) [catalina.jar:9.0.99]
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312) [catalina.jar:9.0.99]
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) [catalina.jar:9.0.99]
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389) [catalina.jar:9.0.99]
	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336) [catalina.jar:9.0.99]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776) [catalina.jar:9.0.99]
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:721) [catalina.jar:9.0.99]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) [catalina.jar:9.0.99]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203) [catalina.jar:9.0.99]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193) [catalina.jar:9.0.99]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.99]
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) [?:?]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749) [catalina.jar:9.0.99]
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211) [catalina.jar:9.0.99]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) [catalina.jar:9.0.99]
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415) [catalina.jar:9.0.99]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) [catalina.jar:9.0.99]
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874) [catalina.jar:9.0.99]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) [catalina.jar:9.0.99]
	at org.apache.catalina.startup.Catalina.start(Catalina.java:739) [catalina.jar:9.0.99]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) [bootstrap.jar:9.0.99]
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) [bootstrap.jar:9.0.99]
Caused by: com.servoy.j2db.persistence.RepositoryException: java.lang.NullPointerException: Cannot invoke "com.servoy.j2db.persistence.ColumnInfo.flagStored()" because "<local34>" is null
	at com.servoy.j2db.server.Za.Zag.Za(Zag.java:511) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.Za.Zag.importFromJarFile(Zag.java:321) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.starter.Zc.Za(Zc.java:107) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.starter.Zc.doActiveSolutionImport(Zc.java:79) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.main.ApplicationServer.loadAllSolutionsCompletelyInMem(ApplicationServer.java:77) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.main.ApplicationServer.startServices(ApplicationServer.java:717) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.servlets.WarClientServletContextListener.startAppServer(WarClientServletContextListener.java:167) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	... 42 more
Caused by: java.lang.NullPointerException: Cannot invoke "com.servoy.j2db.persistence.ColumnInfo.flagStored()" because "<local34>" is null
	at com.servoy.j2db.server.Za.Zl.importDatabaseInfo(Zl.java:828) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.Za.Zag.Za(Zag.java:460) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.Za.Zag.importFromJarFile(Zag.java:321) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.starter.Zc.Za(Zc.java:107) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.starter.Zc.doActiveSolutionImport(Zc.java:79) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.main.ApplicationServer.loadAllSolutionsCompletelyInMem(ApplicationServer.java:77) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.main.ApplicationServer.startServices(ApplicationServer.java:717) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	at com.servoy.j2db.server.servlets.WarClientServletContextListener.startAppServer(WarClientServletContextListener.java:167) ~[j2dbdev.jar:2024.3.5.3948_LTS]
	... 42 more

Figured it out. We had tables that started with “temp_” in our MySQL database and Servoy didn’t like it. Changed the prefix to “tmp_” and updated references to the table and the problem was solved.