Servoy 2020.03

Servoy announcements

Re: Servoy 2020.03

Postby jcompagner » Tue Jun 09, 2020 12:36 pm

first of all ,we can't do much about that if tomcat would by default do that.
But i just downloaded the latest 9.0.36 and looked into the default web.xml:

<!--
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
</filter>
-->

its commented out, so somebody else did enable that.
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8460
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 2020.03

Postby lwjwillemsen » Tue Jun 09, 2020 1:45 pm

Thanks Johan for this valuable info!
I am starting internally a (Tomcat installation) investigation...
Thanks again for taking the time!
Lambert Willemsen
Vision Development BV
lwjwillemsen
 
Posts: 673
Joined: Sat Mar 14, 2009 5:39 pm
Location: The Netherlands

Re: Servoy 2020.03

Postby swingman » Wed Jun 10, 2020 6:45 pm

Hi I was working away happily, then suddenly one my form editors stopped saving and I tried to restart Servoy Developer. Now it freezes on startup:
Code: Select all
2020-06-10 17:28:50,020 ERROR [Framework stop] com.servoy.j2db.util.Debug - Component spec for bootstrapcomponents-label not found; please check your component spec file(s). [ ]

*****

2020-06-10 17:36:23,164 WARN [main] org.sablo.specification.WebComponentSpecProvider - Called WebComponentSpecProvider.getSpecProviderState() on a none initialzed provider, this can be just a problem in startup, returning an empty state [ ]
java.lang.RuntimeException: spec component provider is null
   at org.sablo.specification.WebComponentSpecProvider.getSpecProviderState(WebComponentSpecProvider.java:112) ~[?:?]
   at com.servoy.eclipse.ui.views.solutionexplorer.SolutionExplorerTreeContentProvider.getComponentsSpecProviderState(SolutionExplorerTreeContentProvider.java:445) ~[?:?]
   at com.servoy.eclipse.ui.views.solutionexplorer.SolutionExplorerTreeContentProvider.hasChildren(SolutionExplorerTreeContentProvider.java:1684) ~[?:?]
   at com.servoy.eclipse.ui.views.solutionexplorer.SolutionExplorerTreeContentProvider.<init>(SolutionExplorerTreeContentProvider.java:372) ~[?:?]
   at com.servoy.eclipse.ui.views.solutionexplorer.SolutionExplorerView.createTreeViewer(SolutionExplorerView.java:1628) ~[?:?]
   at com.servoy.eclipse.ui.views.solutionexplorer.SolutionExplorerView.createPartControl(SolutionExplorerView.java:861) ~[?:?]
   at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:154) ~[?:?]
   at org.eclipse.ui.internal.e4.compatibility.CompatibilityView.createPartControl(CompatibilityView.java:155) ~[?:?]
   at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:361) ~[?:?]
   at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
   at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
   at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
   at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
   at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58) ~[?:?]
   at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1002) ~[?:?]
   at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:967) ~[?:?]
   at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:139) ~[?:?]
   at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:408) ~[?:?]
   at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:331) ~[?:?]
   at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1002) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:547) ~[?:?]
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) ~[org.eclipse.equinox.common_3.10.600.v20191004-1420.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:531) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:73) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1002) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733) ~[?:?]
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) ~[org.eclipse.equinox.common_3.10.600.v20191004-1420.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1297) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:105) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:680) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733) ~[?:?]
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) ~[org.eclipse.equinox.common_3.10.600.v20191004-1420.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:140) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:676) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733) ~[?:?]
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) ~[org.eclipse.equinox.common_3.10.600.v20191004-1420.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:51) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:676) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733) ~[?:?]
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) ~[org.eclipse.equinox.common_3.10.600.v20191004-1420.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:82) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:105) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:64) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:680) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733) ~[?:?]
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) ~[org.eclipse.equinox.common_3.10.600.v20191004-1420.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:140) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:676) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733) ~[?:?]
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) ~[org.eclipse.equinox.common_3.10.600.v20191004-1420.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72) ~[?:?]
   at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:665) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:676) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733) ~[?:?]
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) ~[org.eclipse.equinox.common_3.10.600.v20191004-1420.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1086) ~[?:?]
   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) ~[org.eclipse.core.databinding.observable_1.8.100.v20191118-0932.jar:?]
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049) ~[?:?]
   at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) ~[?:?]
   at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:660) ~[?:?]
   at org.eclipse.ui.internal.Workbench$$Lambda$194.0000000000000000.run(Unknown Source) ~[?:?]
   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) [org.eclipse.core.databinding.observable_1.8.100.v20191118-0932.jar:?]
   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559) [org.eclipse.ui.workbench_3.117.0.v20191126-1131.jar:?]
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154) [org.eclipse.ui.workbench_3.117.0.v20191126-1131.jar:?]
   at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150) [org.eclipse.ui.ide.application_1.3.500.v20191122-2109.jar:?]
   at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) [org.eclipse.equinox.app_1.4.300.v20190815-1535.jar:?]
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137) [org.eclipse.osgi_3.15.100.v20191114-1701.jar:?]
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107) [org.eclipse.osgi_3.15.100.v20191114-1701.jar:?]
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401) [org.eclipse.osgi_3.15.100.v20191114-1701.jar:?]
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) [org.eclipse.osgi_3.15.100.v20191114-1701.jar:?]
   at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
   at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
   at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
   at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
   at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657) [org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar:?]
   at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594) [org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar:?]
   at org.eclipse.equinox.launcher.Main.run(Main.java:1465) [org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar:?]

Christian Batchelor
Certified Servoy Developer
Batchelor Associates Ltd, London, UK
http://www.batchelorassociates.co.uk

http://www.postgresql.org - The world's most advanced open source database.
User avatar
swingman
 
Posts: 1377
Joined: Wed Oct 01, 2003 10:20 am
Location: London

Re: Servoy 2020.03

Postby swingman » Wed Jun 10, 2020 11:43 pm

HI, I'm back in business. First, I checked in my changes into git. Then I made a new workspace downloaded a commit from this morning, got Servoy Developer to start normally. Then I overwrote my work space with my latest commit and launched Developer.
So far, so good...
Christian Batchelor
Certified Servoy Developer
Batchelor Associates Ltd, London, UK
http://www.batchelorassociates.co.uk

http://www.postgresql.org - The world's most advanced open source database.
User avatar
swingman
 
Posts: 1377
Joined: Wed Oct 01, 2003 10:20 am
Location: London

Re: Servoy 2020.03

Postby jcompagner » Thu Jun 11, 2020 9:21 am

not sure why it hangs, but that stack shouldn't really cause that, and that stack is fixed for 2020.6
If something hangs at startup, look if you admin page did came up and make a stack dump
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8460
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

databaseManager.getSQLParameters()

Postby lwjwillemsen » Fri Jun 26, 2020 8:24 am

Bug in Servoy2020.03:

databaseManager.addTableFilterParam('db_server', 'clients', 'owner_id', 'IN', ["234244", "68678668"], 'filter_4')
var _fs = databaseManager.getFoundSet('db_server', 'clients')
_fs.loadAllRecords()
var _array = databaseManager.getSQLParameters(_fs, true)

_array[0] holds some internal object and not the array ["234244", "68678668"] !
Multi tennant showstopper in our solution...
Lambert Willemsen
Vision Development BV
lwjwillemsen
 
Posts: 673
Joined: Sat Mar 14, 2009 5:39 pm
Location: The Netherlands

Re: Servoy 2020.03

Postby rgansevles » Fri Jun 26, 2020 9:52 am

Lambert,

This is related to the new feature in https://wiki.servoy.com/display/DOCS/2020.03+Whats+new
Databases who are supporting this (for now only postgresql) will use the ANY (?) instead of IN (?,?,?) when possible for queries


If you look at the sql generated, there will be one question mark instead of the 2 before.

What are you using the sql parameters for?
Passing them to databaseManager.getDataSetByQuery() works with the returned data of databaseManager.getSQLParameters()

Rob
Rob Gansevles
Servoy
User avatar
rgansevles
 
Posts: 1909
Joined: Wed Nov 15, 2006 6:17 pm
Location: Amersfoort, NL

Re: Servoy 2020.03

Postby lwjwillemsen » Fri Jun 26, 2020 12:07 pm

Hi Rob,

We use databaseManager.getSQL() and databaseManager.getSQLParameters() to generate a SQL query (including all filters!) that is used as a parameter in a Jasper report run!

Can the full not prepared SQL query be extracted from a Servoy foundset in Servoy2020.03?

Help!
Lambert Willemsen
Vision Development BV
lwjwillemsen
 
Posts: 673
Joined: Sat Mar 14, 2009 5:39 pm
Location: The Netherlands

Re: Servoy 2020.03

Postby rgansevles » Fri Jun 26, 2020 12:55 pm

Lambert,

Please create an issue for this in the Servoy support site: https://support.servoy.com

In the mean time, you can use a workaround:
There is a global setting in servoy.properties that can be used to disable the new optimized (postgres only) sql:
Code: Select all
servoy.server.sql.useArrayForIn=false


This will get you the old style sql en the array values back.

Rob
Rob Gansevles
Servoy
User avatar
rgansevles
 
Posts: 1909
Joined: Wed Nov 15, 2006 6:17 pm
Location: Amersfoort, NL

Re: Servoy 2020.03

Postby lwjwillemsen » Fri Jun 26, 2020 1:23 pm

Thanks Johan,

Will do.
Lambert Willemsen
Vision Development BV
lwjwillemsen
 
Posts: 673
Joined: Sat Mar 14, 2009 5:39 pm
Location: The Netherlands

Re: Servoy 2020.03

Postby jcompagner » Fri Jun 26, 2020 2:50 pm

Thx johan? what did i do? ;)
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8460
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 2020.03

Postby lwjwillemsen » Fri Jun 26, 2020 8:29 pm

Thanks for sharing the setting in the servoy_properties file!
Lambert Willemsen
Vision Development BV
lwjwillemsen
 
Posts: 673
Joined: Sat Mar 14, 2009 5:39 pm
Location: The Netherlands

Re: Servoy 2020.03

Postby jcompagner » Fri Jun 26, 2020 9:08 pm

i think you should look who really helped you ;)

THX ROB!
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8460
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 2020.03

Postby lwjwillemsen » Sat Jun 27, 2020 9:06 am

Oh, Sorry Rob!
Thanks a lot for the info.
Can you (also) explain the Servoy advantage(s) of using ANY instead of IN?
Lambert Willemsen
Vision Development BV
lwjwillemsen
 
Posts: 673
Joined: Sat Mar 14, 2009 5:39 pm
Location: The Netherlands

Re: Servoy 2020.03

Postby pbakker » Thu Jul 16, 2020 11:06 am

Using the IN statement will result in different prepared statements if the # of values in the in clause differ. Using the ANY statement will result in the same prepared statement regardless of the # of values in the IN statement.

Besides this meaning that the prepared statements for more actual different queries can be cached and the database has to only come up with one execution plan for the same query regardless of the # of values, Postgres specifically also performs better with ANY statements compared to IN statements
pbakker
 
Posts: 2822
Joined: Wed Oct 01, 2003 8:12 pm
Location: Amsterdam, the Netherlands

PreviousNext

Return to Announcements

Who is online

Users browsing this forum: No registered users and 1 guest