Servoy 7.3

Servoy announcements

Re: Servoy 7.3

Postby rieder » Tue Oct 29, 2013 11:30 pm

Hi

We're about to upgrade our productive system (Smartclient under Windwos) to Servoy 7.3. But there are some open questions/problems which we definitely have to solve first:

1. When does a client notice, that a new version of a solution is available? I thought - until now - this is checked every time the client launches the application. But now, we always have to delete the .Servoy Folder.

2. When loading a foundset with more than 200 records (330) with an SQL query into a form, an aggregates and a controller.sort(...) raises an error.

3. Did the order of events change or do you no longer raise the record selection event when the new selected index will be same as the old one? We notice a different behaviour when inserting new records: On record selection is triggered during creation of the new record (with all attributes empty) but not after creation, if the new record will be at the same position as the previously selected record.

4. Console: What does "INFO - Debug - Skipping sort on unrelated column first_name.persons for table xy" mean?

5. If we use a type ahead in a table view, all records have a blue background. What should the style settings be to only highlight the selected record?

Any help will be appreciated a lot. Thank you and regards
Birgit
Birgit Rieder
7r AG, Switzerland
SAN Developer
http://www.seven-r.ch
User avatar
rieder
 
Posts: 177
Joined: Thu Jan 26, 2012 5:18 pm

Re: Servoy 7.3

Postby Harjo » Tue Oct 29, 2013 11:43 pm

HI Birgit,

did you file separated (reproducable) cases, for the issues you see?
Harjo Kompagnie
ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
Harjo
 
Posts: 4321
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Servoy 7.3

Postby rieder » Wed Oct 30, 2013 8:41 am

No, I didn't so far. I hoped, someone could point me to an error we made or to a known error or workaround.
It wouldn't be so easy for some of the points anyway. And it takes time. Do you know what could bei the problem of the first point? That's the most frightening one for me.

Thank you and kind regards
Birgit
Birgit Rieder
7r AG, Switzerland
SAN Developer
http://www.seven-r.ch
User avatar
rieder
 
Posts: 177
Joined: Thu Jan 26, 2012 5:18 pm

Re: Servoy 7.3

Postby rgansevles » Wed Oct 30, 2013 12:56 pm

rieder wrote:Hi

We're about to upgrade our productive system (Smartclient under Windwos) to Servoy 7.3. But there are some open questions/problems which we definitely have to solve first:

1. When does a client notice, that a new version of a solution is available? I thought - until now - this is checked every time the client launches the application. But now, we always have to delete the .Servoy Folder.

2. When loading a foundset with more than 200 records (330) with an SQL query into a form, an aggregates and a controller.sort(...) raises an error.

3. Did the order of events change or do you no longer raise the record selection event when the new selected index will be same as the old one? We notice a different behaviour when inserting new records: On record selection is triggered during creation of the new record (with all attributes empty) but not after creation, if the new record will be at the same position as the previously selected record.

4. Console: What does "INFO - Debug - Skipping sort on unrelated column first_name.persons for table xy" mean?

5. If we use a type ahead in a table view, all records have a blue background. What should the style settings be to only highlight the selected record?

Any help will be appreciated a lot. Thank you and regards
Birgit


Hi Birgit,

ad 1.
It should work as you described, when a smart client is launced it should automatically use the active version from the server.

ad 2.
What is the errorr that you get?

ad 4.
This message is printed if a sort is tried on a column but the relation could not be used for sorting.
Rob Gansevles
Servoy
User avatar
rgansevles
 
Posts: 1927
Joined: Wed Nov 15, 2006 6:17 pm
Location: Amersfoort, NL

Re: Servoy 7.3

Postby Jan Blok » Wed Oct 30, 2013 2:53 pm

rieder wrote:We're about to upgrade our productive system (Smartclient under Windwos) to Servoy 7.3.

From what Servoy version are you coming?
Jan Blok
Servoy
Jan Blok
 
Posts: 2684
Joined: Mon Jun 23, 2003 11:15 am
Location: Amsterdam

Re: Servoy 7.3

Postby rieder » Wed Oct 30, 2013 7:03 pm

Hi Jan

Thank you for replying!

We solved point 1: We understood (again), that only using the developer and committing changes to the repository (as we did this week) does not update the client automatically. It needs a new solutions release in the repository. Either manually or by importing a solution. And this release is checked by the java webstart process. So, the automatic client update works correct. As Rob mentioned is should.

For point 2 I will post the error message tonight or tomorrows.

Thanks so far and regards
Birgit
Birgit Rieder
7r AG, Switzerland
SAN Developer
http://www.seven-r.ch
User avatar
rieder
 
Posts: 177
Joined: Thu Jan 26, 2012 5:18 pm

Re: Servoy 7.3

Postby rieder » Wed Oct 30, 2013 9:33 pm

Hi

1. Now that we found out, what we made wrong, new versions are downloaded fine.

2.Here is the console message and the error dialog for the problem with the foundset (size: 330 records).

ERROR - Debug - There is a problem with an aggregate
com.servoy.j2db.persistence.RepositoryException: java.lang.ArrayIndexOutOfBoundsException null
at com.servoy.j2db.dataprocessing.Zv.Za(Zv.java:1080)
at com.servoy.j2db.dataprocessing.Zv.Za(Zv.java:268)
at com.servoy.j2db.dataprocessing.Zv.performQuery(Zv.java:1172)
at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:303)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at com.sun.proxy.$Proxy18.performQuery(Unknown Source)
at com.servoy.j2db.dataprocessing.FoundSet.performQuery(FoundSet.java:6307)
at com.servoy.j2db.dataprocessing.FoundSet.queryForAggregate(FoundSet.java:3558)
at com.servoy.j2db.dataprocessing.FoundSet.getAggregateValue(FoundSet.java:3463)
at com.servoy.j2db.dataprocessing.FoundSet.getDataProviderValue(FoundSet.java:3453)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:220)
at com.servoy.j2db.dataprocessing.DataAdapterList.getValueObject(DataAdapterList.java:864)
at com.servoy.j2db.dataprocessing.DataAdapterList.getValueObject(DataAdapterList.java:841)
at com.servoy.j2db.dataprocessing.DataAdapterList.getStringValue(DataAdapterList.java:810)
at com.servoy.base.util.TagParser.processTags(TagParser.java:82)
at com.servoy.j2db.util.Text.processTags(Text.java:35)
at com.servoy.j2db.smart.dataui.DataLabel.setValueObject(DataLabel.java:179)
at com.servoy.j2db.dataprocessing.DisplaysAdapter.setValueToDisplays(DisplaysAdapter.java:220)
at com.servoy.j2db.dataprocessing.DisplaysAdapter.setRecord(DisplaysAdapter.java:130)
at com.servoy.j2db.dataprocessing.DataAdapterList.setRecord(DataAdapterList.java:403)
at com.servoy.j2db.smart.dataui.DataRenderer.refreshRecord(DataRenderer.java:667)
at com.servoy.j2db.FormController.refreshAllPartRenderers(FormController.java:3092)
at com.servoy.j2db.FormController.valueChanged(FormController.java:3172)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.fireValueChanged(AlwaysRowSelectedSelectionModel.java:245)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:137)
at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.setSelectedRows(AlwaysRowSelectedSelectionModel.java:225)
at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.setSelectedRow(AlwaysRowSelectedSelectionModel.java:190)
at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.setSelectedRow(AlwaysRowSelectedSelectionModel.java:158)
at com.servoy.j2db.dataprocessing.SwingFoundSet.setSelectedIndex(SwingFoundSet.java:134)
at com.servoy.j2db.dataprocessing.TableAndListEventDelegate$1.run(TableAndListEventDelegate.java:153)
at com.servoy.j2db.dataprocessing.TableAndListEventDelegate.fireTableAndListEvent(TableAndListEventDelegate.java:180)
at com.servoy.j2db.dataprocessing.SwingFoundSet.fireFoundSetEvent(SwingFoundSet.java:149)
at com.servoy.j2db.dataprocessing.FoundSet.fireDifference(FoundSet.java:4724)
at com.servoy.j2db.dataprocessing.FoundSet.loadExternalPKList(FoundSet.java:2051)
at com.servoy.j2db.dataprocessing.FoundSet.js_loadRecords(FoundSet.java:1143)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:158)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:312)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:62)
at org.mozilla.javascript.gen.HadesPlacements_forms_PlcClassCoursesForTimetable_onShow_175._c_onShow_0(HadesPlacements/forms/PlcClassCoursesForTimetable/onShow:55)
at org.mozilla.javascript.gen.HadesPlacements_forms_PlcClassCoursesForTimetable_onShow_175.call(HadesPlacements/forms/PlcClassCoursesForTimetable/onShow)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:626)
at com.servoy.j2db.FormController.executeFunction(FormController.java:4983)
at com.servoy.j2db.FormController.executeFormMethod(FormController.java:5319)
at com.servoy.j2db.FormController.executeOnShowMethod(FormController.java:5185)
at com.servoy.j2db.FormController.access$17(FormController.java:5179)
at com.servoy.j2db.FormController$3.run(FormController.java:3964)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
at java.awt.Dialog$1.run(Dialog.java:1049)
at java.awt.Dialog$3.run(Dialog.java:1101)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1099)
at java.awt.Component.show(Component.java:1615)
at java.awt.Component.setVisible(Component.java:1567)
at java.awt.Window.setVisible(Window.java:843)
at java.awt.Dialog.setVisible(Dialog.java:984)
at com.servoy.j2db.util.gui.JEscapeDialog.setVisible(JEscapeDialog.java:168)
at com.servoy.j2db.gui.FormDialog.setVisible(FormDialog.java:164)
at com.servoy.j2db.smart.SwingRuntimeWindow.finalizeShowWindow(SwingRuntimeWindow.java:767)
at com.servoy.j2db.smart.SwingRuntimeWindow.doOldShowInDialog(SwingRuntimeWindow.java:503)
at com.servoy.j2db.smart.SwingRuntimeWindow.doOldShow(SwingRuntimeWindow.java:415)
at com.servoy.j2db.scripting.RuntimeWindow.oldShow(RuntimeWindow.java:218)
at com.servoy.j2db.FormManager.showFormInDialog(FormManager.java:484)
at com.servoy.j2db.scripting.JSApplication.js_showFormInDialog(JSApplication.java:2478)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:158)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:312)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:62)
at org.mozilla.javascript.gen.Hades_forms_PlcClassCoursePositions_openDialogToEnterTimetableLessonId_173._c_openDialogToEnterTimetableLessonId_0(Hades/forms/PlcClassCoursePositions/openDialogToEnterTimetableLessonId:427)
at org.mozilla.javascript.gen.Hades_forms_PlcClassCoursePositions_openDialogToEnterTimetableLessonId_173.call(Hades/forms/PlcClassCoursePositions/openDialogToEnterTimetableLessonId)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:406)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3204)
at org.mozilla.javascript.gen.Hades_forms_PlcClassCoursePositions_openDialogToEnterTimetableLessonId_173.call(Hades/forms/PlcClassCoursePositions/openDialogToEnterTimetableLessonId)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:626)
at com.servoy.j2db.FormController.executeFunction(FormController.java:4983)
at com.servoy.j2db.FormController.executeFunction(FormController.java:4860)
at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:588)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
ERROR - Debug - There is a problem with an aggregate, script stacktrace:
at HadesPlacements/forms/PlcClassCoursesForTimetable/onShow:55 (onShow)
at Hades/forms/PlcClassCoursePositions/openDialogToEnterTimetableLessonId:427 (openDialogToEnterTimetableLessonId)

ERROR - Debug - Could not sort records, try ShowAll records
com.servoy.j2db.persistence.RepositoryException: java.lang.ArrayIndexOutOfBoundsException null
at com.servoy.j2db.dataprocessing.Zv.Za(Zv.java:1080)
at com.servoy.j2db.dataprocessing.Zv.Za(Zv.java:268)
at com.servoy.j2db.dataprocessing.Zv.performQuery(Zv.java:1172)
at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:303)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at com.sun.proxy.$Proxy18.performQuery(Unknown Source)
at com.servoy.j2db.dataprocessing.FoundSet.performQuery(FoundSet.java:6307)
at com.servoy.j2db.dataprocessing.FoundSet.sort(FoundSet.java:4816)
at com.servoy.j2db.FormController.sort(FormController.java:3243)
at com.servoy.j2db.FormController.sort(FormController.java:3262)
at com.servoy.j2db.FormController$JSForm.js_sort(FormController.java:2004)
at com.servoy.j2db.FormController$JSForm.js_sort(FormController.java:1991)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:158)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:312)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:62)
at org.mozilla.javascript.gen.HadesPlacements_forms_PlcClassCoursesForTimetable_onShow_175._c_onShow_0(HadesPlacements/forms/PlcClassCoursesForTimetable/onShow:56)
at org.mozilla.javascript.gen.HadesPlacements_forms_PlcClassCoursesForTimetable_onShow_175.call(HadesPlacements/forms/PlcClassCoursesForTimetable/onShow)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:626)
at com.servoy.j2db.FormController.executeFunction(FormController.java:4983)
at com.servoy.j2db.FormController.executeFormMethod(FormController.java:5319)
at com.servoy.j2db.FormController.executeOnShowMethod(FormController.java:5185)
at com.servoy.j2db.FormController.access$17(FormController.java:5179)
at com.servoy.j2db.FormController$3.run(FormController.java:3964)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
at java.awt.Dialog$1.run(Dialog.java:1049)
at java.awt.Dialog$3.run(Dialog.java:1101)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1099)
at java.awt.Component.show(Component.java:1615)
at java.awt.Component.setVisible(Component.java:1567)
at java.awt.Window.setVisible(Window.java:843)
at java.awt.Dialog.setVisible(Dialog.java:984)
at com.servoy.j2db.util.gui.JEscapeDialog.setVisible(JEscapeDialog.java:168)
at com.servoy.j2db.gui.FormDialog.setVisible(FormDialog.java:164)
at com.servoy.j2db.smart.SwingRuntimeWindow.finalizeShowWindow(SwingRuntimeWindow.java:767)
at com.servoy.j2db.smart.SwingRuntimeWindow.doOldShowInDialog(SwingRuntimeWindow.java:503)
at com.servoy.j2db.smart.SwingRuntimeWindow.doOldShow(SwingRuntimeWindow.java:415)
at com.servoy.j2db.scripting.RuntimeWindow.oldShow(RuntimeWindow.java:218)
at com.servoy.j2db.FormManager.showFormInDialog(FormManager.java:484)
at com.servoy.j2db.scripting.JSApplication.js_showFormInDialog(JSApplication.java:2478)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:158)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:312)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:62)
at org.mozilla.javascript.gen.Hades_forms_PlcClassCoursePositions_openDialogToEnterTimetableLessonId_173._c_openDialogToEnterTimetableLessonId_0(Hades/forms/PlcClassCoursePositions/openDialogToEnterTimetableLessonId:427)
at org.mozilla.javascript.gen.Hades_forms_PlcClassCoursePositions_openDialogToEnterTimetableLessonId_173.call(Hades/forms/PlcClassCoursePositions/openDialogToEnterTimetableLessonId)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:406)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3204)
at org.mozilla.javascript.gen.Hades_forms_PlcClassCoursePositions_openDialogToEnterTimetableLessonId_173.call(Hades/forms/PlcClassCoursePositions/openDialogToEnterTimetableLessonId)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:626)
at com.servoy.j2db.FormController.executeFunction(FormController.java:4983)
at com.servoy.j2db.FormController.executeFunction(FormController.java:4860)
at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:588)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
ERROR - Debug - Could not sort records, try ShowAll records, script stacktrace:
at HadesPlacements/forms/PlcClassCoursesForTimetable/onShow:56 (onShow)
at Hades/forms/PlcClassCoursePositions/openDialogToEnterTimetableLessonId:427 (openDialogToEnterTimetableLessonId)


error.png


The code which raises the errors is:
Code: Select all
var queryClassCoursePositions =
      " SELECT ccp.class_profile_class_level_number," +
      "        ccp.class_profile_class_period_fraction_name," +
      "        ccp.class_profile_class_period_school_year," +
      "        ccp.class_profile_class_sign," +
      "        ccp.class_profile_profile_code," +
      "        ccp.class_profile_profile_period_fraction_name," +
      "        ccp.class_profile_profile_period_school_year," +
      "        ccp.profile_definition_subject_code," +
      "        ccp.profile_definition_subject_type_code" +
      "   FROM class_course_positions ccp" +
      "  WHERE ccp.class_profile_class_period_fraction_name = '" + globals.plcSelectedPeriod.split(' ')[0] + "'" +
      "    AND ccp.class_profile_class_period_school_year = " + globals.plcSelectedPeriod.split(' ')[1] +
      "  ORDER BY ccp.class_profile_class_level_number, ccp.class_profile_class_sign, ccp.profile_definition_subject_type_code, ccp.profile_definition_subject_code";
      
   var dataset = databaseManager.getDataSetByQuery(databaseManager.getDataSourceServerName(controller.getDataSource()), queryClassCoursePositions, null, -1);

   // Remove positions with same profile, keep only one per profile. We couldn't find an SQL statement for this.
   for (var i = dataset.getMaxRowIndex(); i > 1; i--) {
      if (dataset.getValue(i, 1) == dataset.getValue(i - 1, 1)      
         && dataset.getValue(i, 4) == dataset.getValue(i - 1, 4)         
         && dataset.getValue(i, 8) == dataset.getValue(i - 1, 8)
         && dataset.getValue(i, 9) == dataset.getValue(i - 1, 9)) {
         
         dataset.removeRow(i);
      }
   }

   foundset.loadRecords(dataset);
   controller.sort('class_profile_class_level_number, class_profile_class_sign, class_course_positions_taught_in_profile_definitions.profile_definitions_classified_by_subject_types.sort_order, class_course_positions_taught_in_profile_definitions.profile_definitions_consisting_of_subjects.sort_order');


Any ideas what could be our problem?

Thank you and kind regards
Birgit
You do not have the required permissions to view the files attached to this post.
Birgit Rieder
7r AG, Switzerland
SAN Developer
http://www.seven-r.ch
User avatar
rieder
 
Posts: 177
Joined: Thu Jan 26, 2012 5:18 pm

Re: Servoy 7.3

Postby Harjo » Wed Oct 30, 2013 9:51 pm

I have not a real answer why you get this error, but this is really expensive what your doing,

first you query a dataset.
after that you are doing foundset.loadRecords(dataset) which is basiclly a query again.
and than you do: controller.sort (why not foundset.sort??) which is doing a query again, but than with another sort-order..

(Also I believe a controller.sort must have a columnname with asc, or desc setting)

If you want to use a dataset in foundset.loadRecords(dataset) in the dataset, the first column has to be the pk!, is that the case?

It's really worth the case, to found out, howto eliminate those records inside the query (what you do now in the dataset)
than also do the sort (orderby) in the same query and you only have todo: foundset.loadRecords(query,arguments)

My 2 cents: NEVER use controller.loadRecords(dataset)
Harjo Kompagnie
ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
Harjo
 
Posts: 4321
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Servoy 7.3

Postby rgansevles » Thu Oct 31, 2013 10:17 am

Birgit,

Can you find a ArrayIndexOutOfBoundsException in the server logs as well?

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

Re: Servoy 7.3

Postby rieder » Thu Oct 31, 2013 10:43 am

Hi Harjo

Thank you for responding. Of course, I like to understand, what's behind the different calls.

first you query a dataset.
after that you are doing foundset.loadRecords(dataset) which is basiclly a query again.

Would it be cheaper to use foundset.loadRecords(query)? I thought, this leads also to two queries: One for the pk-dataset and one for the displayed values. Sometimes I use loadRecords(dataset) for easier debugging. To see, what the query returns. And here, obviously, for post operations.

and than you do: controller.sort (why not foundset.sort??) which is doing a query again, but than with another sort-order..

The ORDER BY in the query is new, because I now have to omit the controller.sort() to avoid the error. We only sort once.
And to get the same sorting as before, I have to extend the query with some joins.
But: Is there a difference between controller.aFunction() and foundset.aFunction()? I thought, the two are comparable?

(Also I believe a controller.sort must have a columnname with asc, or desc setting)

I'll check if the error will disappear with ASC.

If you want to use a dataset in foundset.loadRecords(dataset) in the dataset, the first column has to be the pk!, is that the case?

All ten attributes (in alphabetic order) are the pk.

It's really worth the case, to found out, howto eliminate those records inside the query (what you do now in the dataset)

We spent a lot of time (and still do now and then) to make queries for these records of class_course_positions easier.

We'll see us in January. I'm looking forward to some interesting discussions ;-)
Thank you again for pointing things out.

I hope, I'll find an answer to avoid the error.

Kind regards
Birgit
Birgit Rieder
7r AG, Switzerland
SAN Developer
http://www.seven-r.ch
User avatar
rieder
 
Posts: 177
Joined: Thu Jan 26, 2012 5:18 pm

Re: Servoy 7.3

Postby deezzub » Mon Nov 04, 2013 11:13 am

deezzub
 
Posts: 328
Joined: Tue May 28, 2013 3:02 pm
Location: Oldenburg, Germany

Re: Servoy 7.3

Postby patrick » Mon Nov 04, 2013 1:29 pm

@Birgit

As Harjo already stated, there are quite a few performance issues with that query:

When you get a dataset, a query is fired and your dataset is returned (fully loaded into memory). Then you do a loadRecords(dataset) which fires another query that loads the PKs in your dataset (again). Your sort command at the end will lead to yet another query (with the results sorted). You can prevent that by using the defer parameter in the sort and issue the sort command before you load the records. So in the end you fire 3 queries where one would be possible.

By parsing the arguments into your query, you prevent that the DB can reuse an execution plan in case you fire this query again a bit later. Best practice is to use a prepared statement like this

" WHERE ccp.class_profile_class_period_fraction_name = ? " +
" AND ccp.class_profile_class_period_school_year = ? " +

var dataset = databaseManager.getDataSetByQuery(databaseManager.getDataSourceServerName(controller.getDataSource()), queryClassCoursePositions, [globals.plcSelectedPeriod.split(' ')[0], globals.plcSelectedPeriod.split(' ')[1]], -1);


This also takes away the hassle of quoting, escaping etc. depending on the data type of your column (especially dates are ugly).

And why don't you use some simple PK instead of a ten column combined key? Also note that column names longer than 30 characters won't work on all databases (e.g. Oracle), so this is not really cross database.

It is also recommended to use the query builder. It makes sure your queries work everywhere and makes some stuff like querying for PK a bit easier here by simply saying query.result.addPk().

And last but not least: shouldn't it be possible to let the database remove the duplicates by using some group by clause instead of walking over the whole dataset and remove result rows there?
Patrick Ruhsert
Servoy DACH
patrick
 
Posts: 3703
Joined: Wed Jun 11, 2003 10:33 am
Location: Munich, Germany

Re: Servoy 7.3, double scroll-bar webclient

Postby Peter de Groot » Sat Nov 09, 2013 12:06 pm

Hi,

It looks like the double scroll-bar is reintroduced in the werbclient with the release of servoy 7.3.0,

2013-11-09_1059.png


I thought it was fixed in 7.2.x

Regards,

Peter
You do not have the required permissions to view the files attached to this post.
User avatar
Peter de Groot
 
Posts: 215
Joined: Thu Jan 10, 2008 8:38 pm
Location: Not sure...

Re: Servoy 7.3, double scroll-bar webclient

Postby obuligan » Mon Nov 11, 2013 5:48 pm

Peter de Groot wrote:Hi,

It looks like the double scroll-bar is reintroduced in the werbclient with the release of servoy 7.3.0,

2013-11-09_1059.png


I thought it was fixed in 7.2.x

Regards,

Peter


Thank for noticing,
Can you create a case in our jira support system describing your solution ?(attaching a sample solution would greatly help us)
Ovidiu Buligan
Servoy
obuligan
 
Posts: 0
Joined: Mon Dec 03, 2012 4:40 pm

Re: Servoy 7.3

Postby juan.cristobo » Tue Nov 12, 2013 11:01 am

Hi all,

I use Servoy as Team Provider (this is not recommended, I know, but it's the best option for me...) and i worked fine until v7. My devolpment cycle is as usual: make changes in developer, commit changes, flush solution in server and restart client. As I said, this worked fin in previous releases of Servoy, but now I'm migrating to v7.3 and It doesn't work: I don't see in client the changes made in developer and commited to repository.

Any ideas?
Juan
Madrid (Spain)

Servoy 7.4.x - MySQL / SQL Server 2008-2016
Windows 10 Pro
juan.cristobo
 
Posts: 186
Joined: Thu Apr 19, 2012 9:12 am

PreviousNext

Return to Announcements

Who is online

Users browsing this forum: No registered users and 14 guests

cron